Showing
52 changed files
with
1192 additions
and
0 deletions
.gitignore
0 → 100644
SARPGPythonLarge.gif
0 → 100644
56 KB
abcd-simul.png
0 → 100644
61.8 KB
abcd.pdf
0 → 100644
No preview for this file type
abcd.png
0 → 100644
65.4 KB
abcd.tex
0 → 100644
1 | +\documentclass{beamer} | ||
2 | + | ||
3 | +\usepackage[english]{babel} | ||
4 | +\usepackage[utf8]{inputenc} | ||
5 | +\usepackage[orientation=portrait,size=a4,scale=2]{beamerposter} | ||
6 | +\usepackage[absolute,overlay]{textpos} | ||
7 | +\usepackage{url} | ||
8 | + | ||
9 | +\usepackage{tikz} | ||
10 | +\usetikzlibrary{shapes.callouts} | ||
11 | + | ||
12 | +\parindent=0pt | ||
13 | +\setbeamertemplate{navigation symbols}{} | ||
14 | + | ||
15 | +\setlength{\TPHorizModule}{1cm} | ||
16 | +\setlength{\TPVertModule}{1cm} | ||
17 | + | ||
18 | +\def\${\texttt{{\color{gray}\string$}}} | ||
19 | + | ||
20 | +\def\shell #1{{\setbox0\hbox{\texttt{#1\strut}}% | ||
21 | + \dimen0=\dp0 \advance\dimen0 by 5pt | ||
22 | + \leavevmode\raise -\dimen0 \hbox{$\smash{\tikz\node[shell]{\texttt{#1\strut}};}$}}} | ||
23 | + | ||
24 | +\tikzstyle{shell}=[rounded corners, | ||
25 | + inner sep=5pt, | ||
26 | + align=flush left, | ||
27 | + draw=black!10, | ||
28 | + fill=black!5] | ||
29 | + | ||
30 | +\tikzstyle{guide}=[line width=3pt, | ||
31 | + rounded corners, | ||
32 | + cap=round, | ||
33 | + color=yellow!60!gray!50!white] | ||
34 | + | ||
35 | +\def\minor #1{{\small\color{gray}#1}} | ||
36 | +\def\remark #1{\minor{(#1)}} | ||
37 | + | ||
38 | +\def\abcdC #1{{\color{blue!50!black!60!white}\texttt{\# #1}}} | ||
39 | +\def\abcdK #1{{\texttt{\color{red!50!black}#1}}} | ||
40 | +\def\abcdR #1{{\texttt{\color{purple!50!black}#1}}} | ||
41 | +\def\abcdN #1{{\texttt{\color{green!50!black}#1}}} | ||
42 | +\def\abcdA #1{\texttt{{\color{red!50!black}[}#1{\color{red!50!black}]}}} | ||
43 | +\def\abcd #1{\texttt{#1}} | ||
44 | +\def\NT #1{\texttt{\textit{\color{blue!50!black!60!white}#1}}} | ||
45 | +\def\>{\texttt{~~~~}} | ||
46 | + | ||
47 | +\def\*{$\color{gray}\triangleright$ \ignorespaces} | ||
48 | +\def\+{$\phantom{\triangleright}$ \ignorespaces} | ||
49 | +\def\({\leavevmode{\setbox0\hbox{(}\hbox to \wd0{\hfil}}\ignorespaces} | ||
50 | + | ||
51 | +\begin{document} | ||
52 | + | ||
53 | +\begin{frame}[t]{} | ||
54 | + | ||
55 | + %% | ||
56 | + %% drawing grid | ||
57 | + %% | ||
58 | + | ||
59 | + %% \begin{textblock}{21}(0,0) | ||
60 | + %% \begin{tikzpicture}[yellow!70,yscale=-1] | ||
61 | + %% \draw[densely dotted] (0,0) grid (21,30); | ||
62 | + %% \foreach \x in {1,...,20} { | ||
63 | + %% \node at (\x,.5) {\x}; | ||
64 | + %% } | ||
65 | + %% \foreach \y in {1,...,29} { | ||
66 | + %% \node at (.5,\y) {\y}; | ||
67 | + %% } | ||
68 | + %% \end{tikzpicture} | ||
69 | + %% \end{textblock} | ||
70 | + | ||
71 | + %% | ||
72 | + %% title & logos | ||
73 | + %% | ||
74 | + | ||
75 | + \begin{textblock}{19}(1,.7) | ||
76 | + \begin{center} | ||
77 | + \Huge\textbf{ABCD cheatsheet} | ||
78 | + \end{center} | ||
79 | + \end{textblock} | ||
80 | + | ||
81 | + \begin{textblock}{1.5}(1,27.5) | ||
82 | + \begin{tikzpicture} | ||
83 | + \node[inner sep=0pt] (snk) {\includegraphics[width=15mm]{logo-snakes}}; | ||
84 | + \node[anchor=west,text width=6cm] at (snk.east) | ||
85 | + {\tiny\color{gray}% | ||
86 | + \copyright~2018 Franck Pommereau\\[4pt] | ||
87 | + \href{mailto:franck.pommerau@univ-evry.fr}% | ||
88 | + {franck.pommerau@univ-evry.fr}\\[-4pt] | ||
89 | + \href{https://snakes.ibisc.univ-evry.fr}% | ||
90 | + {snakes.ibisc.univ-evry.fr}}; | ||
91 | + \end{tikzpicture} | ||
92 | + \end{textblock} | ||
93 | + | ||
94 | + %% | ||
95 | + %% command line interface | ||
96 | + %% | ||
97 | + | ||
98 | + \begin{textblock}{12}(1,2.7) | ||
99 | + \advance\baselineskip by 14pt | ||
100 | + \advance\parskip by 7pt | ||
101 | + | ||
102 | + \noindent | ||
103 | + \tikz\node[shell,text width=\textwidth-10pt] {\texttt{\$ abcd | ||
104 | + {\color{red!50!black}[option]\dots} | ||
105 | + {\color{green!50!black}spec.abcd}\strut}}; | ||
106 | + | ||
107 | + \shell{--pnml=FILE} save net as PNML \remark{SNAKES' variant} | ||
108 | + | ||
109 | + \shell{--dot=FILE} | ||
110 | + \shell{--neato=FILE} | ||
111 | + \shell{--towpi=FILE} | ||
112 | + \shell{--circo=FILE} | ||
113 | + \shell{--fdp=FILE} draw net using a GraphViz engine | ||
114 | + | ||
115 | + \shell{--load=PLUGIN} load a plugin before to build net | ||
116 | + \remark{may be repeated} | ||
117 | + | ||
118 | + \shell{--simul} start interactive simulator | ||
119 | + \end{textblock} | ||
120 | + | ||
121 | + %% | ||
122 | + %% source structure | ||
123 | + %% | ||
124 | + | ||
125 | + \begin{textblock}{5}(15,2.7) | ||
126 | + \begin{tikzpicture}[xscale=.8,yscale=-1] | ||
127 | + \node[anchor=base west] at (.2,.8) {\abcdC{a comment}}; | ||
128 | + \node[anchor=base west] at (.2,1.3) {\abcdC{another comment}}; | ||
129 | + \path[fill=red,opacity=.1] (0,1.5) rectangle (6,4); | ||
130 | + \node at (3,2.7) {\color{red!50!black}declarations}; | ||
131 | + \path[fill=green,opacity=.1] (0,4) rectangle (6,6); | ||
132 | + \node at (3,5) {\color{green!50!black}process}; | ||
133 | + \draw[color=gray!70,line width=2pt,rounded corners] (0,0) -- (5,0) -- (6,1) -- (6,6) -- (0,6) -- cycle; | ||
134 | + \draw[color=gray!70,line width=2pt,rounded corners,cap=round,shorten <=2pt,shorten >=2pt] (5,0) |- (6,1); | ||
135 | + \end{tikzpicture} | ||
136 | + \end{textblock} | ||
137 | + | ||
138 | + %% | ||
139 | + %% declarations | ||
140 | + %% | ||
141 | + | ||
142 | + \begin{textblock}{6}(1,11) | ||
143 | + \textbf{buffer declarations:} | ||
144 | + | ||
145 | + \abcdK{buffer} \NT{name}\abcdK{:} \NT{type} \abcdK{= ()}\\ | ||
146 | + \* empty buffer | ||
147 | + | ||
148 | + \abcdK{buffer} \NT{name}\abcdK{:} \NT{type} \abcdK{=} \NT{val}\abcdK{,} \NT{\dots}\\ | ||
149 | + \* buffer with initial content | ||
150 | + | ||
151 | + \vspace*{5pt} | ||
152 | + \textbf{type expressions:} | ||
153 | + | ||
154 | + any Python type or class\\ | ||
155 | + \* eg, \abcdR{int}, \abcdR{str}, \abcdR{object}, \dots,\\ | ||
156 | + \+ or user-defined classes | ||
157 | + | ||
158 | + \abcdK{enum(}\NT{val}\abcdK{,} \NT{val}\abcdK{,} \NT{\dots}\abcdK{)}\\ | ||
159 | + \* enumerated type | ||
160 | + | ||
161 | + \NT{type} \abcdK{*} \NT{type}\\ | ||
162 | + \* cross-product of types | ||
163 | + | ||
164 | + \NT{type} \abcdK{|} \NT{type}\\ | ||
165 | + \* union of types | ||
166 | + | ||
167 | + \NT{type} \abcdK{\&} \NT{type}\\ | ||
168 | + \* intersection of types | ||
169 | + | ||
170 | + \vspace*{5pt} | ||
171 | + \textbf{types definition:}$^\star$ | ||
172 | + | ||
173 | + \abcdK{typedef} \NT{name}\abcdK{:} \NT{type}\\ | ||
174 | + | ||
175 | + \vspace*{5pt} | ||
176 | + \textbf{constants:}$^\star$ | ||
177 | + | ||
178 | + \abcdK{const} \NT{name} \abcdK{=} \NT{expr} | ||
179 | + | ||
180 | + \vspace*{5pt} | ||
181 | + \textbf{symbols:}$^\star$ | ||
182 | + | ||
183 | + \abcdK{symbol} \NT{name}\abcdK{,} \NT{\dots}\\ | ||
184 | + \* define fresh unique values | ||
185 | + | ||
186 | + \vspace*{5pt} | ||
187 | + \textbf{Python imports:}$^\star$ | ||
188 | + | ||
189 | + \* just use regular Python imports | ||
190 | + | ||
191 | + \vspace*{5pt} | ||
192 | + \tikz[remember picture]\node[inner sep=0pt](call) {\textbf{sub-processes}}; | ||
193 | + | ||
194 | + \vspace*{5pt} | ||
195 | + \minor{$\star$ global declarations only} | ||
196 | + \end{textblock} | ||
197 | + | ||
198 | + %% | ||
199 | + %% atomic actions | ||
200 | + %% | ||
201 | + | ||
202 | + \begin{textblock}{6}(14,9.9) | ||
203 | + \textbf{atomic actions:} | ||
204 | + | ||
205 | + \abcdA{\abcdR{True}}\\ | ||
206 | + \* no-op non-blocking action | ||
207 | + | ||
208 | + \abcdA{\abcdR{False}}\\ | ||
209 | + \* always-blocking action | ||
210 | + | ||
211 | + \abcdA{\NT{accesses}}\\ | ||
212 | + \* unguarded action | ||
213 | + | ||
214 | + \abcdA{\NT{accesses} \abcdK{if} \NT{expr}}\\ | ||
215 | + \* guarded action | ||
216 | + | ||
217 | + \vspace*{5pt} | ||
218 | + \textbf{accesses:} | ||
219 | + | ||
220 | + \abcdN{buff}\abcdK{-(}\NT{val}\abcdK{)}\\ | ||
221 | + \* consume \NT{val} from \abcdN{buff} | ||
222 | + | ||
223 | + \abcdN{buff}\abcdK{-(}\NT{var}\abcdK{)}\\ | ||
224 | + \* consume a value from \abcdN{buff}\\ | ||
225 | + \+ and binds it to \NT{var} | ||
226 | + | ||
227 | + \abcdN{buff}\abcdK{+(}\NT{expr}\abcdK{)}\\ | ||
228 | + \* produce a value into \abcdN{buff} | ||
229 | + | ||
230 | + \abcdN{buff}\abcdK{?(}\NT{val}\abcdK{)}\\ | ||
231 | + \* test for \NT{val} in \abcdN{buff} | ||
232 | + | ||
233 | + \abcdN{buff}\abcdK{?(}\NT{var}\abcdK{)}\\ | ||
234 | + \* test for a value in \abcdN{buff}\\ | ||
235 | + \+ and binds it to \NT{var} | ||
236 | + | ||
237 | + \abcdN{buff}\abcdK{>>(}\NT{var}\abcdK{)}\\ | ||
238 | + \* flush \abcdN{buff} into \NT{var} | ||
239 | + | ||
240 | + \abcdN{buff}\abcdK{<<(}\NT{var}\abcdK{)}\\ | ||
241 | + \* add the values contained in\\ | ||
242 | + \+ \NT{var} to \abcdN{buff} | ||
243 | + | ||
244 | + \abcdN{buff}\abcdK{<>(}\NT{val}\abcdK{=}\NT{expr}\abcdK{)}\\ | ||
245 | + \* replace \NT{val} in \abcdN{buff}\\ | ||
246 | + \+ with \NT{expr} | ||
247 | + | ||
248 | + \abcdN{buff}\abcdK{<>(}\NT{var}\abcdK{=}\NT{expr}\abcdK{)}\\ | ||
249 | + \* replace \NT{var} in \abcdN{buff}\\ | ||
250 | + \+ with \NT{expr} | ||
251 | + | ||
252 | + \vspace*{5pt} | ||
253 | + \remark{a comma-separated list of accesses\\[-2pt] | ||
254 | + \( is performed atomically} | ||
255 | + \end{textblock} | ||
256 | + | ||
257 | + %% | ||
258 | + %% control flow | ||
259 | + %% | ||
260 | + | ||
261 | + \begin{textblock}{5}(8,11.7) | ||
262 | + \textbf{control flow:} | ||
263 | + | ||
264 | + \NT{process} \abcdK{;} \NT{process}\\ | ||
265 | + \* sequential composition | ||
266 | + | ||
267 | + \NT{process} \abcdK{*} \NT{process}\\ | ||
268 | + \* non-deterministic choice\\ | ||
269 | + \+ \remark{use opposite guards to\\[-2pt] | ||
270 | + \+\( make it deterministic} | ||
271 | + | ||
272 | + \NT{process} \abcdK{*} \NT{process}\\ | ||
273 | + \* iterate left-hand-side and\\ | ||
274 | + \+ exit with right-hand-side | ||
275 | + | ||
276 | + \NT{process} \abcdK{|} \NT{process}\\ | ||
277 | + \* parallel composition | ||
278 | + | ||
279 | + \vspace*{5pt} | ||
280 | + \remark{no priorities $\Rightarrow$ use parentheses} | ||
281 | + | ||
282 | + \vspace*{5pt} | ||
283 | + \textbf{sub-process instances:} | ||
284 | + | ||
285 | + \NT{name}\abcdK{(}\NT{args}\abcdK{)}\\ | ||
286 | + \* substitute \NT{args} in net \NT{name}\\ | ||
287 | + \+ scope its local buffers\\ | ||
288 | + \+ insert the net | ||
289 | + | ||
290 | + \tikz\draw[guide,dashed,dash pattern=on 12pt off 6pt](0,0) -- (5,0); | ||
291 | + | ||
292 | + \vspace*{5pt} | ||
293 | + \leavevmode\hbox to 0pt{\tikz[remember picture]\node[inner sep=3pt](suite){};\hss}% | ||
294 | + \textbf{sub-process declarations:} | ||
295 | + | ||
296 | + \abcdK{net} \NT{name} \abcdK{(}\NT{params}\abcdK{):}\\[-4pt] | ||
297 | + \begin{tikzpicture}[yscale=-1] | ||
298 | + \node[fill=red,opacity=.1,text opacity=1,minimum width=4cm,minimum height=1cm] | ||
299 | + at (2.6,0) {\color{red!50!black}declarations}; | ||
300 | + \node[fill=green,opacity=.1,text opacity=1,minimum width=4cm,minimum height=1cm] | ||
301 | + at (2.6,1) {\color{green!50!black}process}; | ||
302 | + \node[rotate=90,text width=2cm,text centered,opacity=.3] at (0,.5) {\small indented\\[-5pt] block}; | ||
303 | + \end{tikzpicture} | ||
304 | + | ||
305 | + \vspace*{5pt} | ||
306 | + \textbf{sub-process parameters:} | ||
307 | + | ||
308 | + \NT{name}\\ | ||
309 | + \* a value is expected | ||
310 | + | ||
311 | + \NT{name}\abcdK{: buffer}\\ | ||
312 | + \* a buffer name is expected | ||
313 | + | ||
314 | + \end{textblock} | ||
315 | + | ||
316 | + %% | ||
317 | + %% guide lines | ||
318 | + %% | ||
319 | + | ||
320 | + \begin{textblock}{21}(0,-.3) | ||
321 | + \begin{tikzpicture}[overlay,remember picture,yscale=-1] | ||
322 | + \draw[guide,->] (3.6,3.8) -- +(0,.7); | ||
323 | + \draw[guide,->] (6.7,3.8) |- +(8.35,.6); | ||
324 | + \draw[guide,->] (16.2,5.8) -| (14,9) -- (10,10.5) -| (3,11.2); | ||
325 | + \draw[guide,->] (17.5,8.3) |- (15.5,9.5) -- (15.5,10.2); | ||
326 | + \draw[guide,->] (16,9.5) -- (14,9.5) -- (9.5,11.2) -- (9.5,11.9); | ||
327 | + \draw[guide,->,shorten >=3pt,shorten <=3pt] (call) -| (7.5,25) |- (suite); | ||
328 | + \end{tikzpicture} | ||
329 | + \end{textblock} | ||
330 | + | ||
331 | +\end{frame} | ||
332 | +\end{document} |
cartoon-python.eps
0 → 100644
This diff could not be displayed because it is too large.
cartoon-python.jpg
0 → 100644
120 KB
cartoon-python.pdf
0 → 100644
No preview for this file type
cartoon-python.png
0 → 100644
245 KB
cartoon-python.svg
0 → 100644
This diff could not be displayed because it is too large.
flat-python.eps
0 → 100644
This diff could not be displayed because it is too large.
flat-python.gsvg.svg
0 → 100644
This diff could not be displayed because it is too large.
flat-python.pdf
0 → 100644
No preview for this file type
flat-python.svg
0 → 100644
This diff could not be displayed because it is too large.
genopole.png
0 → 100644
534 KB
logo-genopole.eps
0 → 100644
This diff could not be displayed because it is too large.
logo-genopole.pdf
0 → 100644
No preview for this file type
logo-genopole.svg
0 → 100644
This diff could not be displayed because it is too large.
logo-ibisc.pdf
0 → 100644
No preview for this file type
logo-snakes.pdf
0 → 100644
This diff could not be displayed because it is too large.
logo-ueve.pdf
0 → 100644
No preview for this file type
neco-plain.svg
0 → 100644
1 | +<?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||
2 | +<!-- Created with Inkscape (http://www.inkscape.org/) --> | ||
3 | + | ||
4 | +<svg | ||
5 | + xmlns:dc="http://purl.org/dc/elements/1.1/" | ||
6 | + xmlns:cc="http://creativecommons.org/ns#" | ||
7 | + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | ||
8 | + xmlns:svg="http://www.w3.org/2000/svg" | ||
9 | + xmlns="http://www.w3.org/2000/svg" | ||
10 | + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||
11 | + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||
12 | + width="152.50768" | ||
13 | + height="46.106602" | ||
14 | + id="svg3552" | ||
15 | + version="1.1" | ||
16 | + inkscape:version="0.48.3.1 r9886" | ||
17 | + sodipodi:docname="neco-plain.svg"> | ||
18 | + <defs | ||
19 | + id="defs3554" /> | ||
20 | + <sodipodi:namedview | ||
21 | + id="base" | ||
22 | + pagecolor="#ffffff" | ||
23 | + bordercolor="#666666" | ||
24 | + borderopacity="1.0" | ||
25 | + inkscape:pageopacity="0.0" | ||
26 | + inkscape:pageshadow="2" | ||
27 | + inkscape:zoom="1.4" | ||
28 | + inkscape:cx="375" | ||
29 | + inkscape:cy="177.14288" | ||
30 | + inkscape:document-units="px" | ||
31 | + inkscape:current-layer="layer1" | ||
32 | + showgrid="false" | ||
33 | + inkscape:window-width="1440" | ||
34 | + inkscape:window-height="850" | ||
35 | + inkscape:window-x="0" | ||
36 | + inkscape:window-y="0" | ||
37 | + inkscape:window-maximized="1" | ||
38 | + borderlayer="true" | ||
39 | + fit-margin-top="0" | ||
40 | + fit-margin-left="0" | ||
41 | + fit-margin-right="0" | ||
42 | + fit-margin-bottom="0" /> | ||
43 | + <metadata | ||
44 | + id="metadata3557"> | ||
45 | + <rdf:RDF> | ||
46 | + <cc:Work | ||
47 | + rdf:about=""> | ||
48 | + <dc:format>image/svg+xml</dc:format> | ||
49 | + <dc:type | ||
50 | + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | ||
51 | + <dc:title /> | ||
52 | + </cc:Work> | ||
53 | + </rdf:RDF> | ||
54 | + </metadata> | ||
55 | + <g | ||
56 | + inkscape:label="Layer 1" | ||
57 | + inkscape:groupmode="layer" | ||
58 | + id="layer1" | ||
59 | + transform="translate(0,-1006.2556)"> | ||
60 | + <path | ||
61 | + style="fill:#000000" | ||
62 | + d="M 0 0 L 0 22.09375 C 1.83581 17.42535 5.24048 13.538 9.59375 11.125 L 0 0 z M 39.59375 0 L 30 11.125 C 34.35327 13.538 37.75794 17.42535 39.59375 22.09375 L 39.59375 0 z M 61.375 11.09375 L 61.375 11.125 C 50.63541 11.4001 42 19.10445 42 28.59375 C 42 28.89025 41.9831 29.17575 42 29.46875 C 42.51531 38.54975 50.97083 45.82745 61.375 46.09375 C 61.57174 46.10375 61.77092 46.09375 61.96875 46.09375 C 62.31315 46.09375 62.66009 46.10875 63 46.09375 L 77 46.09375 L 77 36.46875 L 75 36.46875 L 70.71875 36.46875 L 68.71875 36.46875 L 65.125 36.46875 L 64.40625 36.46875 C 64.25329 36.47875 64.0611 36.46875 63.90625 36.46875 L 63.65625 36.46875 L 63.15625 36.46875 L 62.4375 36.46875 C 62.28454 36.47875 62.09235 36.46875 61.9375 36.46875 L 61.6875 36.46875 C 58.512238 36.387444 55.744751 34.846258 54.21875 32.59375 L 77 32.59375 L 77 24.59375 L 54.21875 24.59375 C 55.744773 22.341214 58.512304 20.800056 61.6875 20.71875 L 61.9375 20.71875 L 63.15625 20.71875 L 63.65625 20.71875 L 63.90625 20.71875 L 65.125 20.71875 L 70.71875 20.71875 L 75 20.71875 L 77 20.71875 L 77 11.09375 L 61.96875 11.09375 L 61.375 11.09375 z M 99.375 11.09375 L 99.375 11.125 C 88.63541 11.4001 80 19.10445 80 28.59375 C 80 28.89025 79.9831 29.17575 80 29.46875 C 80.51531 38.54975 88.97083 45.82745 99.375 46.09375 C 99.57173 46.10375 99.77092 46.09375 99.96875 46.09375 C 100.31315 46.09375 100.66009 46.10875 101 46.09375 L 115 46.09375 L 115 36.46875 L 113 36.46875 L 108.71875 36.46875 L 106.71875 36.46875 L 103.125 36.46875 L 102.40625 36.46875 C 102.25329 36.47875 102.06111 36.46875 101.90625 36.46875 L 101.65625 36.46875 L 101.15625 36.46875 L 100.4375 36.46875 C 100.28454 36.47875 100.09234 36.46875 99.9375 36.46875 L 99.6875 36.46875 C 94.85659 36.34505 90.9375 32.86215 90.9375 28.59375 C 90.9375 24.32525 94.85669 20.84245 99.6875 20.71875 L 99.9375 20.71875 L 101.15625 20.71875 L 101.65625 20.71875 L 101.90625 20.71875 L 103.125 20.71875 L 108.71875 20.71875 L 113 20.71875 L 115 20.71875 L 115 11.09375 L 99.96875 11.09375 L 99.375 11.09375 z M 135 11.09375 C 125.33502 11.09375 117.5 18.92875 117.5 28.59375 C 117.5 38.25875 125.33502 46.09375 135 46.09375 C 144.66498 46.09375 152.5 38.25875 152.5 28.59375 C 152.5 18.92875 144.66498 11.09375 135 11.09375 z M 19 11.125 C 8.6196799 11.6403 0.30442 20.06455 0 30.46875 C -0.006 30.66545 0 30.8647 0 31.0625 C 0 31.4069 -0.0173 31.75385 0 32.09375 L 0 46.09375 L 11 46.09375 L 11 44.125 L 11 39.8125 L 11 37.8125 L 11 34.25 L 11 33.53125 C 10.992 33.37825 11 33.18615 11 33.03125 C 11 32.94225 10.997 32.87005 11 32.78125 L 11 32.25 L 11 31.53125 C 10.992 31.37835 11 31.18605 11 31.03125 C 11 30.94225 10.997 30.86995 11 30.78125 C 11.14135 25.95035 15.12074 22.0625 20 22.0625 C 24.87919 22.0625 28.85855 25.95045 29 30.78125 L 29 31.03125 L 29 32.25 L 29 32.78125 L 29 33.03125 L 29 34.25 L 29 39.8125 L 29 44.125 L 29 46.09375 L 40 46.09375 L 40 31.0625 L 40 30.46875 L 39.96875 30.46875 C 39.6543 19.72915 30.84691 11.125 20 11.125 C 19.66103 11.125 19.33485 11.108 19 11.125 z M 135.25 19.5 C 140.22056 19.5 144.25 23.5295 144.25 28.5 C 144.25 33.4706 140.22056 37.5 135.25 37.5 C 130.27944 37.5 126.25 33.4706 126.25 28.5 C 126.25 23.5295 130.27944 19.5 135.25 19.5 z " | ||
63 | + transform="translate(0,1006.2556)" | ||
64 | + id="path3307-2" /> | ||
65 | + </g> | ||
66 | +</svg> |
neco.eps
0 → 100644
1 | +%!PS-Adobe-3.0 EPSF-3.0 | ||
2 | +%%Creator: cairo 1.10.2 (http://cairographics.org) | ||
3 | +%%CreationDate: Wed Nov 6 19:19:23 2013 | ||
4 | +%%Pages: 1 | ||
5 | +%%BoundingBox: 0 -1 123 38 | ||
6 | +%%DocumentData: Clean7Bit | ||
7 | +%%LanguageLevel: 2 | ||
8 | +%%EndComments | ||
9 | +%%BeginProlog | ||
10 | +/cairo_eps_state save def | ||
11 | +/dict_count countdictstack def | ||
12 | +/op_count count 1 sub def | ||
13 | +userdict begin | ||
14 | +/q { gsave } bind def | ||
15 | +/Q { grestore } bind def | ||
16 | +/cm { 6 array astore concat } bind def | ||
17 | +/w { setlinewidth } bind def | ||
18 | +/J { setlinecap } bind def | ||
19 | +/j { setlinejoin } bind def | ||
20 | +/M { setmiterlimit } bind def | ||
21 | +/d { setdash } bind def | ||
22 | +/m { moveto } bind def | ||
23 | +/l { lineto } bind def | ||
24 | +/c { curveto } bind def | ||
25 | +/h { closepath } bind def | ||
26 | +/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto | ||
27 | + 0 exch rlineto 0 rlineto closepath } bind def | ||
28 | +/S { stroke } bind def | ||
29 | +/f { fill } bind def | ||
30 | +/f* { eofill } bind def | ||
31 | +/n { newpath } bind def | ||
32 | +/W { clip } bind def | ||
33 | +/W* { eoclip } bind def | ||
34 | +/BT { } bind def | ||
35 | +/ET { } bind def | ||
36 | +/pdfmark where { pop globaldict /?pdfmark /exec load put } | ||
37 | + { globaldict begin /?pdfmark /pop load def /pdfmark | ||
38 | + /cleartomark load def end } ifelse | ||
39 | +/BDC { mark 3 1 roll /BDC pdfmark } bind def | ||
40 | +/EMC { mark /EMC pdfmark } bind def | ||
41 | +/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def | ||
42 | +/Tj { show currentpoint cairo_store_point } bind def | ||
43 | +/TJ { | ||
44 | + { | ||
45 | + dup | ||
46 | + type /stringtype eq | ||
47 | + { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse | ||
48 | + } forall | ||
49 | + currentpoint cairo_store_point | ||
50 | +} bind def | ||
51 | +/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore | ||
52 | + cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def | ||
53 | +/Tf { pop /cairo_font exch def /cairo_font_matrix where | ||
54 | + { pop cairo_selectfont } if } bind def | ||
55 | +/Td { matrix translate cairo_font_matrix matrix concatmatrix dup | ||
56 | + /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point | ||
57 | + /cairo_font where { pop cairo_selectfont } if } bind def | ||
58 | +/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def | ||
59 | + cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def | ||
60 | +/g { setgray } bind def | ||
61 | +/rg { setrgbcolor } bind def | ||
62 | +/d1 { setcachedevice } bind def | ||
63 | +%%EndProlog | ||
64 | +%%Page: 1 1 | ||
65 | +%%BeginPageSetup | ||
66 | +%%PageBoundingBox: 0 -1 123 38 | ||
67 | +%%EndPageSetup | ||
68 | +q 0 -1 123 39 rectclip q | ||
69 | +0 37.057 123 -38 re W n | ||
70 | +0 g | ||
71 | +0.004 6.6 m 0.008 14.42 1.023 18.631 3.785 22.287 c 9.297 29.588 21.344 | ||
72 | +29.69 27.402 22.49 c 30.277 19.073 31.191 15.338 31.195 6.998 c 31.199 | ||
73 | +-0.002 l 23.199 -0.002 l 23.199 6.826 l 23.199 15.061 21.965 18.526 | ||
74 | +18.516 19.951 c 15.648 21.139 13 20.666 10.301 18.483 c 8.555 17.069 | ||
75 | +8.379 16.26 8.129 8.471 c 7.855 -0.002 l 0 -0.002 l h | ||
76 | +42.406 1.276 m 31.719 5.908 30.297 19.108 39.781 25.615 c 42.367 27.389 | ||
77 | +43.645 27.627 51.738 27.869 c 60.801 28.139 l 60.801 20.799 l 52.977 | ||
78 | +20.799 l 44.91 20.799 41.602 19.74 41.602 17.155 c 41.602 16.213 43.367 | ||
79 | +15.998 51.199 15.998 c 60.801 15.998 l 60.801 12.049 l 50.707 11.823 l | ||
80 | +40.617 11.6 l 42.234 9.6 l 43.75 7.733 44.418 7.58 52.328 7.326 c | ||
81 | +60.801 7.053 l 60.801 -0.002 l 53 0.03 l 47.859 0.053 44.246 0.475 | ||
82 | +42.406 1.276 c h | ||
83 | +73.324 1.166 m 64.008 4.49 60.91 16.045 67.453 23.076 c 71.055 26.951 | ||
84 | +74.492 27.998 83.566 27.998 c 92 27.998 l 92 20.799 l 84.348 20.799 l | ||
85 | +74.332 20.799 71.277 19.19 71.227 13.869 c 71.207 12.01 71.852 10.795 | ||
86 | +73.66 9.272 c 75.949 7.346 76.688 7.201 84.062 7.201 c 92 7.201 l 92 | ||
87 | +-0.002 l 84.199 0.033 l 79.715 0.057 75.094 0.537 73.324 1.166 c h | ||
88 | +101.938 1.518 m 88.32 7.701 92.969 27.998 108 27.998 c 112.547 27.998 | ||
89 | +116.098 26.311 119.035 22.748 c 124.84 15.705 122.402 5.307 114.062 | ||
90 | +1.518 c 109.922 -0.365 106.078 -0.365 101.938 1.518 c h | ||
91 | +113.238 9.162 m 117.883 13.811 114.691 20.799 107.918 20.799 c 103.684 | ||
92 | +20.799 100.801 18.045 100.801 13.998 c 100.801 9.92 103.68 7.201 108 | ||
93 | +7.201 c 110.406 7.201 111.793 7.717 113.238 9.162 c h | ||
94 | +0.004 28.201 m 0.004 32.932 0.16 36.799 0.355 36.799 c 0.551 36.799 | ||
95 | +2.363 34.772 4.383 32.295 c 8.051 27.791 l 5.602 26.096 l 4.254 25.162 | ||
96 | +2.445 23.319 1.582 21.998 c 0.012 19.6 l h | ||
97 | +28.398 23.475 m 27.078 24.94 25.309 26.514 24.461 26.979 c 23.027 27.76 | ||
98 | +23.191 28.139 26.859 32.44 c 30.801 37.057 l 31.043 32.928 l 31.176 | ||
99 | +30.658 31.176 27.002 31.043 24.807 c 30.801 20.811 l h | ||
100 | +28.398 23.475 m f | ||
101 | +Q Q | ||
102 | +showpage | ||
103 | +%%Trailer | ||
104 | +count op_count sub {pop} repeat | ||
105 | +countdictstack dict_count sub {end} repeat | ||
106 | +cairo_eps_state restore | ||
107 | +%%EOF |
neco.pdf
0 → 100644
No preview for this file type
neco.png
0 → 100644
2.13 KB
neco.svg
0 → 100644
1 | +<?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||
2 | +<!-- Created with Inkscape (http://www.inkscape.org/) --> | ||
3 | + | ||
4 | +<svg | ||
5 | + xmlns:dc="http://purl.org/dc/elements/1.1/" | ||
6 | + xmlns:cc="http://creativecommons.org/ns#" | ||
7 | + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | ||
8 | + xmlns:svg="http://www.w3.org/2000/svg" | ||
9 | + xmlns="http://www.w3.org/2000/svg" | ||
10 | + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||
11 | + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||
12 | + id="svg2" | ||
13 | + version="1.1" | ||
14 | + inkscape:version="0.48.3.1 r9886" | ||
15 | + width="153" | ||
16 | + height="47" | ||
17 | + sodipodi:docname="neco.png"> | ||
18 | + <metadata | ||
19 | + id="metadata8"> | ||
20 | + <rdf:RDF> | ||
21 | + <cc:Work | ||
22 | + rdf:about=""> | ||
23 | + <dc:format>image/svg+xml</dc:format> | ||
24 | + <dc:type | ||
25 | + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | ||
26 | + <dc:title></dc:title> | ||
27 | + </cc:Work> | ||
28 | + </rdf:RDF> | ||
29 | + </metadata> | ||
30 | + <defs | ||
31 | + id="defs6" /> | ||
32 | + <sodipodi:namedview | ||
33 | + pagecolor="#ffffff" | ||
34 | + bordercolor="#666666" | ||
35 | + borderopacity="1" | ||
36 | + objecttolerance="10" | ||
37 | + gridtolerance="10" | ||
38 | + guidetolerance="10" | ||
39 | + inkscape:pageopacity="0" | ||
40 | + inkscape:pageshadow="2" | ||
41 | + inkscape:window-width="1015" | ||
42 | + inkscape:window-height="727" | ||
43 | + id="namedview4" | ||
44 | + showgrid="false" | ||
45 | + inkscape:zoom="2.0915033" | ||
46 | + inkscape:cx="76.5" | ||
47 | + inkscape:cy="23.5" | ||
48 | + inkscape:window-x="0" | ||
49 | + inkscape:window-y="24" | ||
50 | + inkscape:window-maximized="0" | ||
51 | + inkscape:current-layer="svg2" /> | ||
52 | + <path | ||
53 | + style="fill:#000000" | ||
54 | + d="m 0.483702,37.315625 c 0.0066,-9.773594 1.275404,-15.037416 4.726537,-19.608846 6.889748,-9.12628 21.945633,-9.255004 29.520827,-0.252398 3.59163,4.268411 4.734838,8.936553 4.741482,19.361244 l 0.0056,8.75 -5,0 -5,0 0,-8.532119 c 0,-10.291666 -1.546204,-14.623058 -5.857583,-16.40889 -3.583891,-1.484496 -6.890775,-0.892363 -10.265968,1.838232 -2.184185,1.767046 -2.404039,2.779373 -2.717474,12.512684 l -0.341028,10.590093 -4.908975,0 -4.908975,0 0.0056,-8.25 z m 53.001563,6.657017 C 40.128959,38.180601 38.34933,21.681136 50.203718,13.548449 c 3.232454,-2.217621 4.828988,-2.51872 14.946713,-2.818877 l 11.327694,-0.336053 0,4.586053 0,4.586053 -9.777494,0 c -10.086979,0 -14.222506,1.324969 -14.222506,4.556704 0,1.177545 2.209535,1.443296 12,1.443296 l 12,0 0,2.470123 0,2.470123 -12.615026,0.279877 -12.615025,0.279877 2.024933,2.5 c 1.89071,2.334287 2.726899,2.522605 12.615025,2.841025 l 10.590093,0.341025 0,4.408975 0,4.408975 -9.75,-0.03914 c -6.426655,-0.0258 -10.940562,-0.555436 -13.24286,-1.553841 z m 38.648049,0.134334 C 80.48609,39.954169 76.616145,25.510955 84.794737,16.718307 c 4.50263,-4.840691 8.798019,-6.152682 20.143553,-6.152682 l 10.53984,0 0,4.5 0,4.5 -9.56574,0 c -12.520023,0 -16.335594,2.014763 -16.402462,8.661106 -0.02339,2.325117 0.781871,3.845768 3.044922,5.75 2.857661,2.404564 3.783267,2.588894 13.00001,2.588894 l 9.92327,0 0,4.5 0,4.5 -9.75,-0.04389 c -5.60734,-0.02525 -11.383622,-0.62636 -13.594816,-1.414759 z m 35.766206,-0.437682 c -17.02138,-7.730731 -11.21262,-33.103669 7.5786,-33.103669 5.68429,0 10.12256,2.112161 13.79167,6.563414 7.25642,8.8033 4.2127,21.805107 -6.21307,26.540255 -5.17621,2.350918 -9.98099,2.350918 -15.1572,0 z m 14.12405,-9.558214 c 5.81053,-5.810515 1.81901,-14.545455 -6.64667,-14.545455 -5.29434,0 -8.89878,3.44291 -8.89878,8.5 0,5.100619 3.59934,8.5 9,8.5 3.0101,0 4.73939,-0.648485 6.54545,-2.454545 z M 0.484714,10.315625 c -0.0036,-5.9125 0.193687,-10.75 0.43847,-10.75 0.244782,0 2.508967,2.533665 5.031523,5.630366 l 4.586464,5.630367 -3.061923,2.119633 C 5.795191,14.11179 3.53397,16.415625 2.454314,18.065625 l -1.963011,3 -0.0066,-10.75 z m 35.493411,5.907672 c -1.65,-1.830049 -3.865725,-3.800848 -4.923833,-4.379551 -1.791416,-0.979767 -1.584926,-1.449581 3,-6.825718 l 4.923833,-5.77353 0.30226,5.160564 c 0.166242,2.83831 0.166242,7.407196 0,10.153081 l -0.30226,4.992518 -3,-3.327364 z" | ||
55 | + id="path2987" | ||
56 | + inkscape:connector-curvature="0" /> | ||
57 | +</svg> |
original-773130-1.jpg
0 → 100644
14.3 KB
oroborus.eps
0 → 100644
This diff is collapsed. Click to expand it.
oroborus.pdf
0 → 100644
No preview for this file type
oroborus.png
0 → 100644
10.5 KB
oroborus.svg
0 → 100644
This diff is collapsed. Click to expand it.
papapishu_adder.svg
0 → 100644
This diff could not be displayed because it is too large.
papapishu_anaconda.svg
0 → 100644
This diff could not be displayed because it is too large.
picins.sty
0 → 100755
This diff is collapsed. Click to expand it.
pygments.sty
0 → 100644
1 | +\ProvidesPackage{pygments} | ||
2 | + | ||
3 | +\makeatletter | ||
4 | +\def\PY@reset{\let\PY@it=\relax \let\PY@bf=\relax% | ||
5 | + \let\PY@ul=\relax \let\PY@tc=\relax% | ||
6 | + \let\PY@bc=\relax \let\PY@ff=\relax} | ||
7 | +\def\PY@tok#1{\csname PY@tok@#1\endcsname} | ||
8 | +\def\PY@toks#1+{\ifx\relax#1\empty\else% | ||
9 | + \PY@tok{#1}\expandafter\PY@toks\fi} | ||
10 | +\def\PY@do#1{\PY@bc{\PY@tc{\PY@ul{% | ||
11 | + \PY@it{\PY@bf{\PY@ff{#1}}}}}}} | ||
12 | +\def\PY#1#2{\PY@reset\PY@toks#1+\relax+\PY@do{#2}} | ||
13 | + | ||
14 | +\def\PY@tok@gd{\def\PY@tc##1{\textcolor[rgb]{0.63,0.00,0.00}{##1}}} | ||
15 | +\def\PY@tok@gu{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.50,0.00,0.50}{##1}}} | ||
16 | +\def\PY@tok@gt{\def\PY@tc##1{\textcolor[rgb]{0.00,0.25,0.82}{##1}}} | ||
17 | +\def\PY@tok@gs{\let\PY@bf=\textbf} | ||
18 | +\def\PY@tok@gr{\def\PY@tc##1{\textcolor[rgb]{1.00,0.00,0.00}{##1}}} | ||
19 | +\def\PY@tok@cm{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} | ||
20 | +\def\PY@tok@vg{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} | ||
21 | +\def\PY@tok@m{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} | ||
22 | +\def\PY@tok@mh{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} | ||
23 | +\def\PY@tok@go{\def\PY@tc##1{\textcolor[rgb]{0.50,0.50,0.50}{##1}}} | ||
24 | +\def\PY@tok@ge{\let\PY@it=\textit} | ||
25 | +\def\PY@tok@vc{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} | ||
26 | +\def\PY@tok@il{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} | ||
27 | +\def\PY@tok@cs{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} | ||
28 | +\def\PY@tok@cp{\def\PY@tc##1{\textcolor[rgb]{0.74,0.48,0.00}{##1}}} | ||
29 | +\def\PY@tok@gi{\def\PY@tc##1{\textcolor[rgb]{0.00,0.63,0.00}{##1}}} | ||
30 | +\def\PY@tok@gh{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}} | ||
31 | +\def\PY@tok@ni{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.60,0.60,0.60}{##1}}} | ||
32 | +\def\PY@tok@nl{\def\PY@tc##1{\textcolor[rgb]{0.63,0.63,0.00}{##1}}} | ||
33 | +\def\PY@tok@nn{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} | ||
34 | +\def\PY@tok@no{\def\PY@tc##1{\textcolor[rgb]{0.53,0.00,0.00}{##1}}} | ||
35 | +\def\PY@tok@na{\def\PY@tc##1{\textcolor[rgb]{0.49,0.56,0.16}{##1}}} | ||
36 | +\def\PY@tok@nb{\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} | ||
37 | +\def\PY@tok@nc{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} | ||
38 | +\def\PY@tok@nd{\def\PY@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}} | ||
39 | +\def\PY@tok@ne{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.82,0.25,0.23}{##1}}} | ||
40 | +\def\PY@tok@nf{\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} | ||
41 | +\def\PY@tok@si{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.73,0.40,0.53}{##1}}} | ||
42 | +\def\PY@tok@s2{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} | ||
43 | +\def\PY@tok@vi{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} | ||
44 | +\def\PY@tok@nt{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} | ||
45 | +\def\PY@tok@nv{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} | ||
46 | +\def\PY@tok@s1{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} | ||
47 | +\def\PY@tok@sh{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} | ||
48 | +\def\PY@tok@sc{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} | ||
49 | +\def\PY@tok@sx{\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} | ||
50 | +\def\PY@tok@bp{\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} | ||
51 | +\def\PY@tok@c1{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} | ||
52 | +\def\PY@tok@kc{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} | ||
53 | +\def\PY@tok@c{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} | ||
54 | +\def\PY@tok@mf{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} | ||
55 | +\def\PY@tok@err{\def\PY@bc##1{\fcolorbox[rgb]{1.00,0.00,0.00}{1,1,1}{##1}}} | ||
56 | +\def\PY@tok@kd{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} | ||
57 | +\def\PY@tok@ss{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} | ||
58 | +\def\PY@tok@sr{\def\PY@tc##1{\textcolor[rgb]{0.73,0.40,0.53}{##1}}} | ||
59 | +\def\PY@tok@mo{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} | ||
60 | +\def\PY@tok@kn{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} | ||
61 | +\def\PY@tok@mi{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} | ||
62 | +\def\PY@tok@gp{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}} | ||
63 | +\def\PY@tok@o{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} | ||
64 | +\def\PY@tok@kr{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} | ||
65 | +\def\PY@tok@s{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} | ||
66 | +\def\PY@tok@kp{\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} | ||
67 | +\def\PY@tok@w{\def\PY@tc##1{\textcolor[rgb]{0.73,0.73,0.73}{##1}}} | ||
68 | +\def\PY@tok@kt{\def\PY@tc##1{\textcolor[rgb]{0.69,0.00,0.25}{##1}}} | ||
69 | +\def\PY@tok@ow{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}} | ||
70 | +\def\PY@tok@sb{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} | ||
71 | +\def\PY@tok@k{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} | ||
72 | +\def\PY@tok@se{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.73,0.40,0.13}{##1}}} | ||
73 | +\def\PY@tok@sd{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} | ||
74 | + | ||
75 | +\def\PYZbs{\char`\\} | ||
76 | +\def\PYZus{\char`\_} | ||
77 | +\def\PYZob{\char`\{} | ||
78 | +\def\PYZcb{\char`\}} | ||
79 | +\def\PYZca{\char`\^} | ||
80 | +\def\PYZsh{\char`\#} | ||
81 | +\def\PYZpc{\char`\%} | ||
82 | +\def\PYZdl{\char`\$} | ||
83 | +\def\PYZti{\char`\~} | ||
84 | +% for compatibility with earlier versions | ||
85 | +\def\PYZat{@} | ||
86 | +\def\PYZlb{[} | ||
87 | +\def\PYZrb{]} | ||
88 | +\makeatother |
python-powered.eps
0 → 100644
This diff is collapsed. Click to expand it.
python-powered.pdf
0 → 100644
No preview for this file type
python-powered.svg
0 → 100644
This diff could not be displayed because it is too large.
python-skin.jpg
0 → 100644
1.2 MB
relsize.sty
0 → 100644
This diff is collapsed. Click to expand it.
snake-shadow.eps
0 → 100644
1 | +%!PS-Adobe-3.0 EPSF-3.0 | ||
2 | +%%Creator: cairo 1.10.2 (http://cairographics.org) | ||
3 | +%%CreationDate: Wed Nov 6 17:33:45 2013 | ||
4 | +%%Pages: 1 | ||
5 | +%%BoundingBox: 0 -1 254 157 | ||
6 | +%%DocumentData: Clean7Bit | ||
7 | +%%LanguageLevel: 2 | ||
8 | +%%EndComments | ||
9 | +%%BeginProlog | ||
10 | +/cairo_eps_state save def | ||
11 | +/dict_count countdictstack def | ||
12 | +/op_count count 1 sub def | ||
13 | +userdict begin | ||
14 | +/q { gsave } bind def | ||
15 | +/Q { grestore } bind def | ||
16 | +/cm { 6 array astore concat } bind def | ||
17 | +/w { setlinewidth } bind def | ||
18 | +/J { setlinecap } bind def | ||
19 | +/j { setlinejoin } bind def | ||
20 | +/M { setmiterlimit } bind def | ||
21 | +/d { setdash } bind def | ||
22 | +/m { moveto } bind def | ||
23 | +/l { lineto } bind def | ||
24 | +/c { curveto } bind def | ||
25 | +/h { closepath } bind def | ||
26 | +/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto | ||
27 | + 0 exch rlineto 0 rlineto closepath } bind def | ||
28 | +/S { stroke } bind def | ||
29 | +/f { fill } bind def | ||
30 | +/f* { eofill } bind def | ||
31 | +/n { newpath } bind def | ||
32 | +/W { clip } bind def | ||
33 | +/W* { eoclip } bind def | ||
34 | +/BT { } bind def | ||
35 | +/ET { } bind def | ||
36 | +/pdfmark where { pop globaldict /?pdfmark /exec load put } | ||
37 | + { globaldict begin /?pdfmark /pop load def /pdfmark | ||
38 | + /cleartomark load def end } ifelse | ||
39 | +/BDC { mark 3 1 roll /BDC pdfmark } bind def | ||
40 | +/EMC { mark /EMC pdfmark } bind def | ||
41 | +/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def | ||
42 | +/Tj { show currentpoint cairo_store_point } bind def | ||
43 | +/TJ { | ||
44 | + { | ||
45 | + dup | ||
46 | + type /stringtype eq | ||
47 | + { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse | ||
48 | + } forall | ||
49 | + currentpoint cairo_store_point | ||
50 | +} bind def | ||
51 | +/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore | ||
52 | + cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def | ||
53 | +/Tf { pop /cairo_font exch def /cairo_font_matrix where | ||
54 | + { pop cairo_selectfont } if } bind def | ||
55 | +/Td { matrix translate cairo_font_matrix matrix concatmatrix dup | ||
56 | + /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point | ||
57 | + /cairo_font where { pop cairo_selectfont } if } bind def | ||
58 | +/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def | ||
59 | + cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def | ||
60 | +/g { setgray } bind def | ||
61 | +/rg { setrgbcolor } bind def | ||
62 | +/d1 { setcachedevice } bind def | ||
63 | +%%EndProlog | ||
64 | +%%Page: 1 1 | ||
65 | +%%BeginPageSetup | ||
66 | +%%PageBoundingBox: 0 -1 254 157 | ||
67 | +%%EndPageSetup | ||
68 | +q 0 -1 254 158 rectclip q | ||
69 | +0 156.105 254 -157 re W n | ||
70 | +0 g | ||
71 | +95.027 1.093 m 86.047 3.968 75.254 14.156 72.016 22.808 c 71.148 25.124 | ||
72 | +69.852 30.718 69.133 35.238 c 68.414 39.761 67.148 45.66 66.316 48.347 | ||
73 | +c 63.754 56.652 55.895 63.871 49.418 63.871 c 45.777 63.871 41.227 | ||
74 | +60.574 39.52 56.706 c 36.805 50.554 30.746 49.656 23.398 54.316 c | ||
75 | +18.652 57.328 12.438 59.648 7.316 60.328 c 2.941 60.91 0 62.999 0 | ||
76 | +65.531 c 0 71.019 8.582 79.648 19.48 85.117 c 29.113 89.949 31.887 | ||
77 | +89.863 38.383 84.546 c 41.68 81.847 43.711 81.734 50.398 83.871 c | ||
78 | +53.156 84.749 57.457 85.468 59.961 85.468 c 75.086 85.468 82.25 77.101 | ||
79 | +86.781 54.144 c 89.59 39.894 93.363 32.761 98.812 31.394 c 102.578 | ||
80 | +30.449 107.191 32.574 109.969 36.539 c 112.109 39.589 112.434 40.789 | ||
81 | +112.668 46.539 c 112.934 52.917 112.855 53.226 109.418 59.871 c 107.484 | ||
82 | +63.609 104.066 69.644 101.82 73.281 c 99.574 76.917 96.988 82.117 96.07 | ||
83 | +84.835 c 91.945 97.05 95.531 117.632 104.191 131.46 c 110.5 141.535 | ||
84 | +120.035 149.671 129.832 153.335 c 136.883 155.976 147.793 156.824 | ||
85 | +157.199 155.464 c 167.828 153.929 170.332 153.16 178.664 148.874 c | ||
86 | +194.867 140.539 202.461 127.581 202.691 107.871 c 202.84 95.261 201.426 | ||
87 | +90.355 192.32 71.871 c 188.176 63.464 184.418 54.933 183.965 52.906 c | ||
88 | +181.445 41.675 188.422 34.074 196.648 39.089 c 200.586 41.492 202.359 | ||
89 | +46.113 202.383 54.031 c 202.426 69.542 207.281 78.617 218.281 83.734 c | ||
90 | +222.082 85.499 223.883 85.828 229.602 85.792 c 237.391 85.742 242.578 | ||
91 | +83.91 247.07 79.621 c 256.25 70.851 256.289 54.105 247.145 49.441 c | ||
92 | +241.309 46.464 239.254 48.902 242.398 55.07 c 245.828 61.785 243.387 | ||
93 | +68.39 236.742 70.382 c 227.625 73.113 220 64.191 220 50.789 c 220 | ||
94 | +48.156 219.598 43.628 219.109 40.734 c 216.766 26.902 205.703 16.093 | ||
95 | +191.148 13.417 c 184.629 12.218 177.816 13.769 171.734 17.831 c 166.656 | ||
96 | +21.23 163.816 24.749 160.539 31.714 c 158.23 36.624 158.02 37.734 | ||
97 | +158.043 45.07 c 158.07 52.621 158.258 53.519 161.43 61.148 c 165.762 | ||
98 | +71.558 167.977 80.152 168.551 88.749 c 169.617 104.734 161.719 115.195 | ||
99 | +148.496 115.316 c 139.973 115.398 133.852 111.32 130.117 103.07 c | ||
100 | +128.852 100.277 128.496 97.855 128.52 92.269 c 128.551 85.804 128.906 | ||
101 | +84.128 131.973 75.871 c 138.316 58.796 139.301 55.488 140.004 48.843 c | ||
102 | +141.16 37.925 139.566 31.085 133.496 20.953 c 123.988 5.078 108.137 | ||
103 | +-3.106 95.027 1.093 c h | ||
104 | +113.602 5.234 m 122.555 9.566 132.758 22.05 136.086 32.742 c 139.273 | ||
105 | +42.988 138.039 52.101 130.895 71.07 c 125.234 86.105 124.312 96.121 | ||
106 | +127.855 104.128 c 132.527 114.687 143.926 120.265 154.539 117.179 c | ||
107 | +165.309 114.046 171.168 104.671 171.191 90.519 c 171.203 83.238 169.883 | ||
108 | +77.601 164.27 60.925 c 159.766 47.55 l 160.629 41.972 l 161.797 34.433 | ||
109 | +166.184 25.699 170.883 21.566 c 181.902 11.863 200.41 14.527 210.48 | ||
110 | +27.265 c 214.391 32.21 215.797 36.863 217.32 49.871 c 218.281 58.054 | ||
111 | +218.992 61.113 220.672 64.242 c 223.105 68.781 227.855 72.488 232.137 | ||
112 | +73.183 c 236.199 73.839 243.422 70.507 245.145 67.179 c 246.832 63.914 | ||
113 | +246.699 58.609 244.828 54.488 c 242.309 48.933 246.18 49.132 249.645 | ||
114 | +54.738 c 251.812 58.246 251.973 64.171 250.043 69.468 c 246.684 78.703 | ||
115 | +241.309 82.456 230.762 82.929 c 224.91 83.195 223.848 82.996 219.102 | ||
116 | +80.753 c 209.43 76.183 205.828 69.589 204.758 54.499 c 203.957 43.206 | ||
117 | +202.73 39.804 198.41 36.871 c 195.297 34.753 189.887 34.464 186.465 | ||
118 | +36.234 c 185.121 36.929 183.477 38.953 182.406 41.234 c 180.875 44.488 | ||
119 | +180.668 45.945 181.035 50.828 c 181.43 56.042 182.074 57.769 187.902 | ||
120 | +69.226 c 196.059 85.257 198.066 89.929 199.078 95.214 c 200.762 104.015 | ||
121 | +200.844 107.058 199.602 114.781 c 197.574 127.386 192.914 135.812 | ||
122 | +184.52 142.042 c 171.562 151.656 157.188 155.031 139.457 152.617 c | ||
123 | +124.531 150.585 110.863 140.167 103.699 125.355 c 99.719 117.124 96.801 | ||
124 | +105.097 96.801 96.91 c 96.801 88.64 100.363 78.679 106.547 69.664 c | ||
125 | +111.211 62.867 114.598 54.515 115 48.824 c 115.508 41.632 114.203 | ||
126 | +37.289 110.242 32.992 c 106.645 29.085 103.402 27.835 99.262 28.753 c | ||
127 | +92.5 30.257 88.25 36.257 85.688 47.917 c 81.453 67.175 78.707 74.175 | ||
128 | +73.777 78.249 c 67.934 83.085 58.836 84.312 50.246 81.417 c 42.434 | ||
129 | +78.785 39.84 79.078 35.512 83.066 c 32.215 86.101 31.535 86.402 28.918 | ||
130 | +85.98 c 24.656 85.292 15.172 80.378 10.039 76.199 c 5.418 72.433 2.07 | ||
131 | +67.261 2.883 65.144 c 3.379 63.847 3.648 63.742 10.398 62.214 c 12.82 | ||
132 | +61.664 18.016 59.652 21.941 57.742 c 26.57 55.492 30.164 54.269 32.148 | ||
133 | +54.269 c 34.977 54.269 35.41 54.589 37.738 58.371 c 40.504 62.863 46.23 | ||
134 | +67.074 49.555 67.062 c 52.949 67.046 59.41 63.531 62.656 59.929 c | ||
135 | +66.695 55.449 68.484 51.05 70.441 40.781 c 73.172 26.433 74.398 22.535 | ||
136 | +77.641 17.906 c 87.422 3.949 101.027 -0.848 113.602 5.234 c h | ||
137 | +113.602 5.234 m f | ||
138 | +Q Q | ||
139 | +showpage | ||
140 | +%%Trailer | ||
141 | +count op_count sub {pop} repeat | ||
142 | +countdictstack dict_count sub {end} repeat | ||
143 | +cairo_eps_state restore | ||
144 | +%%EOF |
snake-shadow.pdf
0 → 100644
No preview for this file type
snake-shadow.png
0 → 100644
31.8 KB
snake-shadow.svg
0 → 100644
1 | +<?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||
2 | +<!-- Created with Inkscape (http://www.inkscape.org/) --> | ||
3 | + | ||
4 | +<svg | ||
5 | + xmlns:dc="http://purl.org/dc/elements/1.1/" | ||
6 | + xmlns:cc="http://creativecommons.org/ns#" | ||
7 | + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | ||
8 | + xmlns:svg="http://www.w3.org/2000/svg" | ||
9 | + xmlns="http://www.w3.org/2000/svg" | ||
10 | + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||
11 | + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||
12 | + id="svg2" | ||
13 | + version="1.1" | ||
14 | + inkscape:version="0.48.3.1 r9886" | ||
15 | + width="350" | ||
16 | + height="226" | ||
17 | + sodipodi:docname="snake-shadow.png"> | ||
18 | + <metadata | ||
19 | + id="metadata8"> | ||
20 | + <rdf:RDF> | ||
21 | + <cc:Work | ||
22 | + rdf:about=""> | ||
23 | + <dc:format>image/svg+xml</dc:format> | ||
24 | + <dc:type | ||
25 | + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | ||
26 | + <dc:title></dc:title> | ||
27 | + </cc:Work> | ||
28 | + </rdf:RDF> | ||
29 | + </metadata> | ||
30 | + <defs | ||
31 | + id="defs6" /> | ||
32 | + <sodipodi:namedview | ||
33 | + pagecolor="#ffffff" | ||
34 | + bordercolor="#666666" | ||
35 | + borderopacity="1" | ||
36 | + objecttolerance="10" | ||
37 | + gridtolerance="10" | ||
38 | + guidetolerance="10" | ||
39 | + inkscape:pageopacity="0" | ||
40 | + inkscape:pageshadow="2" | ||
41 | + inkscape:window-width="1349" | ||
42 | + inkscape:window-height="708" | ||
43 | + id="namedview4" | ||
44 | + showgrid="false" | ||
45 | + inkscape:zoom="0.91428571" | ||
46 | + inkscape:cx="175" | ||
47 | + inkscape:cy="113" | ||
48 | + inkscape:window-x="0" | ||
49 | + inkscape:window-y="24" | ||
50 | + inkscape:window-maximized="0" | ||
51 | + inkscape:current-layer="svg2" /> | ||
52 | + <path | ||
53 | + style="fill:#000000" | ||
54 | + d="m 136.25343,213.03298 c -11.22578,-3.59671 -24.71752,-16.32957 -28.76477,-27.1468 -1.08262,-2.89357 -2.70351,-9.88481 -3.60197,-15.53609 -0.89846,-5.65127 -2.48276,-13.02441 -3.52066,-16.38474 -3.20715,-10.38354 -13.02714,-19.40285 -21.12531,-19.40285 -4.5481,0 -10.23795,4.11758 -12.37119,8.95267 -3.39274,7.68982 -10.9696,8.81346 -20.1541,2.98881 -5.93362,-3.76299 -13.70215,-6.66771 -20.10355,-7.51688 -5.46665,-0.72518 -9.14313,-3.34021 -9.14313,-6.50339 0,-6.86103 10.7268,-17.64447 24.35165,-24.48023 12.03771,-6.03946 15.50442,-5.93492 23.62619,0.71251 4.12224,3.37392 6.66257,3.51707 15.02216,0.84651 3.4433,-1.1 8.82025,-2 11.94877,-2 18.91074,0 27.86586,10.45863 33.52741,39.15647 3.51351,17.80966 8.22949,26.72762 15.03765,28.43636 4.70868,1.1818 10.47569,-1.47617 13.94708,-6.4281 2.67493,-3.8158 3.07939,-5.3136 3.37542,-12.5 0.32857,-7.97627 0.23482,-8.36092 -4.06182,-16.66473 -2.41898,-4.675 -6.6939,-12.21955 -9.49982,-16.76567 -2.80591,-4.54611 -6.04059,-11.04599 -7.18818,-14.44417 -5.15524,-15.265516 -0.67389,-40.994989 10.15093,-58.281018 7.88513,-12.59169 19.80842,-22.763568 32.05323,-27.344938 8.81501,-3.298118 22.45014,-4.357934 34.20933,-2.658985 13.28386,1.919231 16.4164,2.881015 26.82937,8.237431 20.25621,10.419764 29.74561,26.614036 30.0354,51.25735 0.18532,15.759416 -1.582,21.89249 -12.96671,44.99795 -5.17655,10.5059 -9.87608,21.17285 -10.44339,23.70433 -3.14684,14.0418 5.57216,23.54168 15.85347,17.27332 4.92602,-3.00331 7.14339,-8.7792 7.1699,-18.67638 0.0519,-19.39239 6.12351,-30.73561 19.874,-37.12961 4.74807,-2.20786 7.00227,-2.61777 14.14796,-2.57273 9.73595,0.0614 16.22481,2.35384 21.83763,7.71509 11.47359,10.95933 11.52466,31.89142 0.092,37.72391 -7.29274,3.72048 -9.86193,0.67199 -5.92967,-7.03588 4.28329,-8.39593 1.23218,-16.65173 -7.0737,-19.14023 -11.39642,-3.41446 -20.92626,7.73821 -20.92626,24.48982 0,3.29262 -0.50145,8.94844 -1.11432,12.5685 -2.92737,17.29094 -16.75505,30.80154 -34.94831,34.14693 -8.15096,1.49881 -16.66495,-0.43813 -24.26775,-5.52093 -6.34918,-4.24469 -9.90051,-8.64739 -13.99688,-17.35239 -2.88702,-6.13507 -3.14628,-7.52352 -3.11677,-16.6917 0.0304,-9.44101 0.26698,-10.56459 4.2323,-20.1001 5.41184,-13.014 8.18162,-23.7535 8.8986,-34.50322 1.33232,-19.975776 -8.53793,-33.051963 -25.06586,-33.207454 -10.65722,-0.10026 -18.305,4.996382 -22.97461,15.310774 -1.58052,3.491099 -2.02771,6.517802 -1.9946,13.5 0.0383,8.07835 0.48027,10.17767 4.31581,20.5 7.92889,21.33852 9.15811,25.47536 10.03856,33.78418 1.44582,13.64406 -0.5495,22.19314 -8.13676,34.86243 -11.88355,19.84331 -31.69988,30.07354 -48.08473,24.82387 z m 23.21532,-5.17844 c 11.19133,-5.4157 23.94662,-21.02068 28.10621,-34.38548 3.98569,-12.80604 2.44355,-24.196 -6.48632,-47.90656 -7.07784,-18.79307 -8.2289,-31.31347 -3.79941,-41.32708 5.83795,-13.197654 20.08802,-20.167099 33.35111,-16.311414 13.46643,3.914797 20.78733,15.635259 20.81654,33.326444 0.015,9.09959 -1.63297,16.14523 -8.65214,36.99037 l -5.62973,16.71883 1.0792,6.9722 c 1.4587,9.42402 6.94366,20.342 12.81636,25.51136 13.77631,12.1264 36.91305,8.79495 49.49887,-7.12731 4.88567,-6.18083 6.64547,-11.99532 8.55112,-28.2534 1.19951,-10.23359 2.09028,-14.05683 4.18598,-17.9663 3.04225,-5.67526 8.98255,-10.30573 14.33524,-11.17435 5.07531,-0.82361 14.10523,3.34427 16.25584,7.5031 2.11097,4.08217 1.94722,10.71231 -0.39184,15.86499 -3.15206,6.94364 1.68708,6.6911 6.01645,-0.31397 2.70993,-4.38476 2.91172,-11.78972 0.50177,-18.41347 -4.20016,-11.54419 -10.92047,-16.23598 -24.10298,-16.8275 -7.31509,-0.32824 -8.64184,-0.0804 -14.57393,2.72237 -12.09302,5.71367 -16.59473,13.95266 -17.9317,32.81838 -1.00008,14.11202 -2.53158,18.36709 -7.93151,22.03675 -3.8917,2.6447 -10.65794,3.00319 -14.93525,0.79131 -1.67889,-0.86819 -3.73313,-3.39829 -5.0745,-6.25 -1.91137,-4.06348 -2.17123,-5.88447 -1.71073,-11.9876 0.49197,-6.52007 1.29847,-8.68134 8.58268,-23 10.19454,-20.03954 12.706,-25.87937 13.97087,-32.486082 2.10638,-11.002156 2.20816,-14.802654 0.65494,-24.457284 -2.53514,-15.758148 -8.36277,-26.290967 -18.85337,-34.075443 -16.1975,-12.019246 -34.16321,-16.236014 -56.32741,-13.220721 -18.65968,2.538526 -35.74318,15.562632 -44.69935,34.077859 -4.97699,10.28899 -8.62301,25.322515 -8.62301,35.554946 0,10.337815 4.4542,22.787945 12.18502,34.058875 5.82728,8.49572 10.06014,18.93374 10.56383,26.04991 0.63631,8.98962 -0.9952,14.42131 -5.9445,19.79066 -4.49965,4.88154 -8.55133,6.44472 -13.72696,5.29598 -8.4515,-1.87581 -13.76639,-9.37845 -16.96974,-23.95494 -5.28938,-24.06871 -8.72543,-32.82139 -14.88458,-37.91559 -7.30768,-6.04414 -18.67925,-7.57383 -29.41573,-3.95698 -9.76421,3.28933 -13.00837,2.92629 -18.41917,-2.06122 -4.11759,-3.79546 -4.96817,-4.17153 -8.23987,-3.64313 -5.32921,0.86071 -17.18573,7.00469 -23.59891,12.22883 -5.77499,4.70427 -9.96275,11.16984 -8.94782,13.81471 0.62347,1.62474 0.96126,1.7565 9.39843,3.66611 3.025,0.68465 9.51734,3.19894 14.42742,5.58731 5.78634,2.8146 10.27563,4.34249 12.75924,4.34249 3.53381,0 4.0771,-0.39861 6.98547,-5.12532 3.4562,-5.61705 10.61366,-10.88082 14.77365,-10.86491 4.23899,0.0162 12.3177,4.41403 16.37419,8.91364 5.05022,5.60189 7.28516,11.1002 9.72983,23.93698 3.41506,17.93221 4.95002,22.80779 9.00129,28.59117 12.2242,17.45062 29.23421,23.44513 44.94891,15.84048 z" | ||
55 | + id="path2987" | ||
56 | + inkscape:connector-curvature="0" /> | ||
57 | +</svg> |
snakes.pdf
0 → 100644
No preview for this file type
snakes.tex
0 → 100644
1 | +\documentclass{beamer} | ||
2 | + | ||
3 | +\usepackage[english]{babel} | ||
4 | +\usepackage[latin1]{inputenc} | ||
5 | +\usepackage[orientation=portrait,size=a0,scale=2]{beamerposter} | ||
6 | +\usepackage{textpos} | ||
7 | +\usepackage{picins} | ||
8 | +\usepackage{url} | ||
9 | +\usepackage{fancyvrb} | ||
10 | +\usepackage{relsize} | ||
11 | + | ||
12 | +\usepackage{tikz} | ||
13 | +\usetikzlibrary{shapes.callouts} | ||
14 | + | ||
15 | +\parindent=0pt | ||
16 | +\setbeamertemplate{navigation symbols}{} | ||
17 | + | ||
18 | +\def\smallskip{\vspace{5mm}} | ||
19 | +\def\medskip{\vspace{10mm}} | ||
20 | +\def\bigskip{\vspace{20mm}} | ||
21 | + | ||
22 | +\colorlet{title}{black!10} | ||
23 | +\colorlet{minor}{black!65} | ||
24 | +\colorlet{snakes}{green!30!black} | ||
25 | +\colorlet{python}{blue!30!black} | ||
26 | +\definecolor{popup}{rgb}{.6,1,.5} | ||
27 | + | ||
28 | +\def\*{\raise-.65ex\hbox{$\smash{ | ||
29 | + \includegraphics[height=1em]{snake-shadow.pdf}}$}} | ||
30 | + | ||
31 | +\def\section#1{\noindent\colorbox{title}{% | ||
32 | + \hbox to \textwidth{\bfseries #1\hfill\strut\*}}\smallskip} | ||
33 | + | ||
34 | +\def\endparitem{\endgraf\egroup} | ||
35 | +\def\>{\par\bgroup | ||
36 | + \let\par=\endparitem | ||
37 | + \leftskip=1.4em\parindent=-1.4em | ||
38 | + \indent\hbox to 1.4em{\hss | ||
39 | + $\smash{\includegraphics[width=1em]{cartoon-python.pdf}}$ | ||
40 | + }\ignorespaces} | ||
41 | +\def\+{\par\bgroup | ||
42 | + \let\par=\endparitem | ||
43 | + \leftskip=2.8em\parindent=-1.4em | ||
44 | + \indent\hbox to 1.4em{\hss | ||
45 | + $\color{snakes}\smash{\bullet}$ | ||
46 | + }\ignorespaces} | ||
47 | + | ||
48 | +\def\PYk #1{{\color{snakes}#1}} | ||
49 | +\def\PYn #1{{\color{python}#1}} | ||
50 | +\def\PYc #1{{\color{minor}#1}} | ||
51 | + | ||
52 | +\begin{document} | ||
53 | +\begin{frame}[fragile]{} | ||
54 | + | ||
55 | +%% | ||
56 | +%% title & logos | ||
57 | +%% | ||
58 | + | ||
59 | +\begin{textblock}{14.4}(.5,.5) | ||
60 | + \parpic{\includegraphics[height=13cm]{logo-snakes}\quad} | ||
61 | + {\Large\bfseries a high-level Petri nets library}\\[15pt] | ||
62 | + {\large Franck Pommereau}\\[30pt] | ||
63 | + \small | ||
64 | + IBISC/COSMO, university of vry/Paris-Saclay\\ | ||
65 | + 23 boulevard de France, 91037 vry Cedex France\\[20pt] | ||
66 | + \url{franck.pommereau@ibisc.univ-evry.fr}\\ | ||
67 | + \url{http://www.ibisc.univ-evry.fr/~fpommereau/SNAKES/} | ||
68 | +\end{textblock} | ||
69 | + | ||
70 | +\begin{textblock}{14.4}(.7,.5) | ||
71 | + \null\hfill | ||
72 | + \begin{tikzpicture}[xscale=4,yscale=4] | ||
73 | + \node at (-2,0) {\includegraphics[width=150mm, height=150mm, | ||
74 | + keepaspectratio=true]{logo-ibisc}}; | ||
75 | + \node at (1,1) {\includegraphics[width=58mm, height=58mm, | ||
76 | + keepaspectratio=true]{logo-ueve}}; | ||
77 | + \node at (1,-1) {\includegraphics[width=65mm, height=65mm, | ||
78 | + keepaspectratio=true]{logo-genopole}}; | ||
79 | + \end{tikzpicture} | ||
80 | +\end{textblock} | ||
81 | + | ||
82 | +%% | ||
83 | +%% left column | ||
84 | +%% | ||
85 | + | ||
86 | +\begin{textblock}{9}(.5,2.85) | ||
87 | +\section{SNAKES in a nutshell} | ||
88 | + | ||
89 | +\tikzstyle{popup}=[draw,rectangle callout,rounded corners=15, | ||
90 | + text width=10cm,align=center,callout pointer width=7mm, | ||
91 | + callout absolute pointer={(70:.5)},fill=popup] | ||
92 | + | ||
93 | +\begin{center} | ||
94 | +\begin{tikzpicture}[scale=12] | ||
95 | + \node at (0,0) {\scalebox{-1}[1]{% | ||
96 | + \includegraphics[scale=3]{oroborus.pdf}}}; | ||
97 | + \node[popup,callout relative pointer={(-70:2)}] at (90:1) | ||
98 | + {SNAKES is a Python library}; | ||
99 | + \node[popup,callout relative pointer={(-150:2)}] at (40:1.4) | ||
100 | + {Define and manipulate Petri nets}; | ||
101 | + \node[popup,callout relative pointer={(170:3)}] at (10:1.3) | ||
102 | + {Very generic Petri net definition}; | ||
103 | + \node[popup,callout relative pointer={(150:4)}] at (-25:1.3) | ||
104 | + {Annotations are Python expressions}; | ||
105 | + \node[popup,callout relative pointer={(80:4)}] at (-90:1) | ||
106 | + {Tokens are Python objects}; | ||
107 | + \node[popup,cloud callout,cloud puffs=15,aspect=2.5,inner sep=-20pt, | ||
108 | + cloud puff arc=120,callout relative pointer={(170:3)}, | ||
109 | + fill=blue!20,rounded corners=0] at (-45:1.7) | ||
110 | + {\small Even SNAKES'\\[-20pt] net objects}; | ||
111 | + \node[popup,callout relative pointer={(50:4.5)}] at (-150:1.2) | ||
112 | + {Fully reflexive for maximal flexibility}; | ||
113 | + \node[popup,cloud callout,cloud puffs=12,aspect=2.6,inner sep=-50pt, | ||
114 | + cloud puff arc=140,callout relative pointer={(50:2)}, | ||
115 | + fill=blue!20,rounded corners=0] at (-130:1.5) | ||
116 | + {\small Inspired\\[-20pt] by Emacs}; | ||
117 | + \node[popup,callout relative pointer={(10:3)}] at (170:1.2) | ||
118 | + {Extensible with plugins}; | ||
119 | + \node at (0,0) {\includegraphics[scale=.5]{python-powered.pdf}}; | ||
120 | +\end{tikzpicture} | ||
121 | +\end{center} | ||
122 | + | ||
123 | +%% | ||
124 | +%% | ||
125 | +%% | ||
126 | + | ||
127 | +\medskip | ||
128 | +\section{Plugins} | ||
129 | + | ||
130 | +\> {\color{snakes}\texttt{gv}}: draw Petri nets using GraphViz | ||
131 | +\> {\color{snakes}\texttt{ops}}: algebras of Petri nets compositions | ||
132 | + {\small\color{minor}(PBC, PNA, M-nets, \dots)} | ||
133 | +\> {\color{snakes}\texttt{pids}}: dynamic processes creation and | ||
134 | + destruction | ||
135 | +\> {\color{snakes}\texttt{labels}}: arbitrary objects annotations | ||
136 | +\> {\color{snakes}\texttt{let}}: variables assignation during computation | ||
137 | +\> \dots {\color{minor}(your plugin here: try, it's easy)} | ||
138 | + | ||
139 | +%% | ||
140 | +%% | ||
141 | +%% | ||
142 | + | ||
143 | +\bigskip | ||
144 | +\section{ABCD for friendly modelling} | ||
145 | + | ||
146 | +\> process algebra with friendly Python-like syntax | ||
147 | +\> embeds full Python | ||
148 | +\> compiler shipped with SNAKES library | ||
149 | +\> generates Petri nets objects | ||
150 | +\> export to pictures or PNML files | ||
151 | +\> simulation and reachability analysis | ||
152 | + | ||
153 | +\vbox to 0pt{\vss\null\hfill | ||
154 | + \includegraphics[width=18cm]{abcd-simul} | ||
155 | + \vspace*{.2\baselineskip}} | ||
156 | +\vspace*{-\baselineskip} | ||
157 | + | ||
158 | +%% | ||
159 | +%% | ||
160 | +%% | ||
161 | + | ||
162 | +\bigskip | ||
163 | +\section{Neco for fast analysis} | ||
164 | + | ||
165 | +\> \L ukasz Fronc's companion tool {\small\color{minor}(available | ||
166 | + separately at \url{https://code.google.com/p/neco-net-compiler/})} | ||
167 | +\> Neco compiles SNAKES Petri nets into fast native code | ||
168 | + \+ optimised marking structure | ||
169 | + \+ per-transition optimised firing | ||
170 | +\> reads PNML, ABCD, or net objects | ||
171 | +\> process-symmetries reductions | ||
172 | +\> state space exploration and LTL model-checking | ||
173 | + {\small\color{minor}(using SPOT)} | ||
174 | +\> awarded at the \emph{model-checking contest\/} 2013 | ||
175 | + {\small\color{minor}(PETRI NETS conf.)} | ||
176 | + | ||
177 | +\vbox to 0pt{\vss\null\hfill | ||
178 | + \begin{tikzpicture} | ||
179 | + \node[inner sep=0pt] (neco) {\includegraphics[width=18cm]{neco.pdf}}; | ||
180 | + \node[below=-6pt] at (neco.south) {\scalebox{2.1}[1]{net | ||
181 | + compiler\hskip 9pt\null}}; | ||
182 | + \end{tikzpicture}\hspace*{-12mm} | ||
183 | + \vspace*{2.8\baselineskip}} | ||
184 | + | ||
185 | +%% | ||
186 | +%% | ||
187 | +%% | ||
188 | + | ||
189 | +\end{textblock} | ||
190 | + | ||
191 | +%% | ||
192 | +%% right column | ||
193 | +%% | ||
194 | + | ||
195 | +\def\section#1{\noindent{\bfseries #1}\smallskip} | ||
196 | + | ||
197 | +\begin{textblock}{5}(10,2.85) | ||
198 | + \begin{tikzpicture} | ||
199 | + \path[fill=title] (0,0) rectangle (40,100); | ||
200 | + \end{tikzpicture} | ||
201 | +\end{textblock} | ||
202 | + | ||
203 | +\begin{textblock}{5}(10.2,3) | ||
204 | + | ||
205 | +%% | ||
206 | +%% | ||
207 | +%% | ||
208 | + | ||
209 | +\section{About SNAKES} | ||
210 | + | ||
211 | +\> free \& open source {\small (GNU LGPL)} | ||
212 | +\> works out of the box | ||
213 | +\> 81.5k lines of portable Python | ||
214 | +\> maintained for 10\texttt{+} years | ||
215 | +\> one permanent developer/user | ||
216 | +\> online documentation has\qquad 300\texttt{+} visitors per month | ||
217 | + | ||
218 | +%% | ||
219 | +%% | ||
220 | +%% | ||
221 | + | ||
222 | +\bigskip | ||
223 | +\section{SNAKES vs GitHub's top 10 Python projects$^*$ | ||
224 | + {\color{minor}\small(on Nov. 2013)}} | ||
225 | + | ||
226 | +\vskip -1ex | ||
227 | +\begin{tikzpicture}[xscale=3.4,yscale=-2.5] | ||
228 | +\tikzstyle{project}=[left,anchor=base east,inner sep=0pt] | ||
229 | +\tikzstyle{bar}=[draw=blue!50!black,fill=blue!50!white, | ||
230 | + anchor=base west,inner sep=0pt,name=bar] | ||
231 | +\tikzstyle{price}=[right,anchor=base west] | ||
232 | +\node[project] at (0,1) {\small django\;}; | ||
233 | +\node[bar,text width=530] at (0,1) {\small\strut}; | ||
234 | +\node[price,anchor=base east] at (bar.base east) | ||
235 | + {\raise -.1ex\hbox{\small\$5.3M (432)}}; | ||
236 | +\node[project] at (0,2) {\small\color{snakes}snakes\;}; | ||
237 | +\node[bar,text width=270] at (0,2) {\small\strut}; | ||
238 | +\begin{scope}[color=snakes] | ||
239 | + \draw[clip] (bar.north west) rectangle (bar.south east) | ||
240 | + node at (bar.center) {\includegraphics[scale=.2]{python-skin}}; | ||
241 | +\end{scope} | ||
242 | +\node[price] at (bar.base east) {\small\$2.7M (2)}; | ||
243 | +\node[project] at (0,3) {\small sick-beard\;}; | ||
244 | +\node[bar,text width=260] at (0,3) {\small\strut}; | ||
245 | +\node[price] at (bar.base east) {\small\$2.6M (110)}; | ||
246 | +\node[project] at (0,4) {\small ipython\;}; | ||
247 | +\node[bar,text width=230] at (0,4) {\small\strut}; | ||
248 | +\node[price] at (bar.base east) {\small\$2.3M (236)}; | ||
249 | +\node[project] at (0,5) {\small boto\;}; | ||
250 | +\node[bar,text width=210] at (0,5) {\small\strut}; | ||
251 | +\node[price] at (bar.base east) {\small\$2.1M (314)}; | ||
252 | +\node[project] at (0,6) {\small reddit\;}; | ||
253 | +\node[bar,text width=150] at (0,6) {\small\strut}; | ||
254 | +\node[price] at (bar.base east) {\small\$1.5M (87)}; | ||
255 | +\node[project] at (0,7) {\small sentry\;}; | ||
256 | +\node[bar,text width=130] at (0,7) {\small\strut}; | ||
257 | +\node[price] at (bar.base east) {\small\$1.3M (166)}; | ||
258 | +\node[project] at (0,8) {\small tornado\;}; | ||
259 | +\node[bar,text width=60] at (0,8) {\small\strut}; | ||
260 | +\node[price] at (bar.base east) {\small\$0.6M (120)}; | ||
261 | +\node[project] at (0,9) {\small requests\;}; | ||
262 | +\node[bar,text width=30] at (0,9) {\small\strut}; | ||
263 | +\node[price] at (bar.base east) {\small\$0.3M (275)}; | ||
264 | +\node[project] at (0,10) {\small flask\;}; | ||
265 | +\node[bar,text width=20] at (0,10) {\small\strut}; | ||
266 | +\node[price] at (bar.base east) {\small\$0.2M (159)}; | ||
267 | +\node[project] at (0,11) {\small httpie\;}; | ||
268 | +\node[bar,text width=10] at (0,11) {\small\strut}; | ||
269 | +\node[price] at (bar.base east) {\small\$0.1M (22)}; | ||
270 | +\end{tikzpicture} | ||
271 | + | ||
272 | +estimated cost to develop {\color{minor}\small(generated using David A. | ||
273 | + Wheeler's ``SLOCCount'')} and number of contributors | ||
274 | + | ||
275 | +\hbox to \textwidth{\null\hfill\color{minor}\small $^*$ 10 most forked | ||
276 | + or followed Python projects} | ||
277 | + | ||
278 | +%% | ||
279 | +%% | ||
280 | +%% | ||
281 | + | ||
282 | +\bigskip | ||
283 | +\section{Using SNAKES out of Python} | ||
284 | + | ||
285 | +\> write a binding in Cython | ||
286 | + | ||
287 | +\begin{Verbatim}[commandchars=\\\{\},fontsize=\small,xleftmargin=1.4em, | ||
288 | + numbers=left,numbersep=30pt] | ||
289 | +\PYc{# this is Cython code} | ||
290 | +\PYk{cdef} \PYk{public} \PYk{int} \PYn{foo} (...): | ||
291 | + \PYc{# Python with SNAKES here} | ||
292 | +\end{Verbatim} | ||
293 | + | ||
294 | +\> Cython compiles to C/C\texttt{++} \qquad with a \texttt{.h} file: | ||
295 | + | ||
296 | +\begin{Verbatim}[commandchars=\\\{\},fontsize=\small,xleftmargin=1.4em, | ||
297 | + numbers=left,numbersep=30pt] | ||
298 | +\PYc{// this is C/C++ code} | ||
299 | +\PYk{extern} \PYk{int} \PYn{foo}(...); | ||
300 | +\end{Verbatim} | ||
301 | + | ||
302 | +\> use this API in your project | ||
303 | + | ||
304 | +%% | ||
305 | +%% | ||
306 | +%% | ||
307 | + | ||
308 | +\bigskip | ||
309 | +\section{Isn't Python slow?} | ||
310 | + | ||
311 | +\> {\color{snakes}no} for handling nets {\small\color{minor}even large | ||
312 | + ones} | ||
313 | +\> {\color{red!30!black}yes} for firing transitions | ||
314 | +\> \raise -.1ex\hbox{\includegraphics[height=.9em]{neco.pdf}} is fast | ||
315 | + at that! {;-)} | ||
316 | + | ||
317 | +%% | ||
318 | +%% | ||
319 | +%% | ||
320 | + | ||
321 | +\end{textblock} | ||
322 | + | ||
323 | +%% | ||
324 | +%% flush top | ||
325 | +%% | ||
326 | + | ||
327 | +\vspace*{150cm} | ||
328 | +\end{frame} | ||
329 | +\end{document} | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
yellow-python.eps
0 → 100644
This diff could not be displayed because it is too large.
yellow-python.jpg
0 → 100644
601 KB
yellow-python.pdf
0 → 100644
No preview for this file type
yellow-python.png
0 → 100644
962 KB
yellow-python.svg
0 → 100644
This diff could not be displayed because it is too large.
-
Please register or login to post a comment