-
Notifications
You must be signed in to change notification settings - Fork 0
/
CV.html
339 lines (330 loc) · 46.9 KB
/
CV.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
<!doctype html>
<html>
<head>
<meta charset='UTF-8'><meta name='viewport' content='width=device-width initial-scale=1'>
<title>CV_Martin Banov_2nd_version</title><link href='night/mermaid.dark.css' rel='stylesheet' type='text/css' />
<link href='night/codeblock.dark.css' rel='stylesheet' type='text/css' />
<link href='night/sourcemode.dark.css' rel='stylesheet' type='text/css' /><style type='text/css'>html {overflow-x: initial !important;}:root { --bg-color:#ffffff; --text-color:#333333; --select-text-bg-color:#B5D6FC; --select-text-font-color:auto; }
html { font-size: 14px; background-color: var(--bg-color); color: var(--text-color); font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; }
body { margin: 0px; padding: 0px; height: auto; bottom: 0px; top: 0px; left: 0px; right: 0px; font-size: 1rem; line-height: 1.42857; overflow-x: hidden; background: inherit; }
a.url { word-break: break-all; }
a:active, a:hover { outline: 0px; }
.in-text-selection, ::selection { text-shadow: none; background: var(--select-text-bg-color); color: var(--select-text-font-color); }
#write { margin: 0px auto; height: auto; width: inherit; word-break: normal; word-wrap: break-word; position: relative; padding-bottom: 70px; white-space: pre-wrap; overflow-x: visible; }
.first-line-indent #write p .md-line { text-indent: 0px; }
.first-line-indent #write li, .first-line-indent #write p, .first-line-indent #write p .md-line:first-child { text-indent: 2em; }
.for-image #write { padding-left: 8px; padding-right: 8px; }
body.typora-export { padding-left: 30px; padding-right: 30px; }
@media screen and (max-width: 500px) {
body.typora-export { padding-left: 0px; padding-right: 0px; }
.CodeMirror-sizer { margin-left: 0px !important; }
.CodeMirror-gutters { display: none !important; }
}
#write > blockquote:first-child, #write > div:first-child, #write > figure:first-child, #write > ol:first-child, #write > p:first-child, #write > pre:first-child, #write > ul:first-child { margin-top: 30px; }
#write li > figure:first-child { margin-top: -20px; }
#write ol, #write ul { position: relative; }
img { max-width: 100%; vertical-align: middle; }
button, input, select, textarea { color: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; font-size: inherit; line-height: inherit; font-family: inherit; }
input[type="checkbox"], input[type="radio"] { line-height: normal; padding: 0px; }
*, ::after, ::before { box-sizing: border-box; }
#write h1, #write h2, #write h3, #write h4, #write h5, #write h6, #write p, #write pre { width: inherit; }
#write h1, #write h2, #write h3, #write h4, #write h5, #write h6, #write p { position: relative; }
h1, h2, h3, h4, h5, h6 { break-after: avoid-page; break-inside: avoid; orphans: 2; }
p { orphans: 4; }
h1 { font-size: 2rem; }
h2 { font-size: 1.8rem; }
h3 { font-size: 1.6rem; }
h4 { font-size: 1.4rem; }
h5 { font-size: 1.2rem; }
h6 { font-size: 1rem; }
h1, h2, h3, h4, h5, h6 { margin-top: 1rem; margin-bottom: 1rem; }
p { -webkit-margin-before: 1rem; -webkit-margin-after: 1rem; -webkit-margin-start: 0px; -webkit-margin-end: 0px; }
.mathjax-block { margin-top: 0px; margin-bottom: 0px; -webkit-margin-before: 0px; -webkit-margin-after: 0px; }
.hidden { display: none; }
.md-blockmeta { color: rgb(204, 204, 204); font-weight: 700; font-style: italic; }
a { cursor: pointer; }
sup.md-footnote { padding: 2px 4px; background-color: rgba(238, 238, 238, 0.7); color: rgb(85, 85, 85); border-radius: 4px; cursor: pointer; }
sup.md-footnote a, sup.md-footnote a:hover { color: inherit; text-transform: inherit; text-decoration: inherit; }
#write input[type="checkbox"] { cursor: pointer; width: inherit; height: inherit; }
figure { overflow-x: auto; margin: 1.2em 0px; max-width: calc(100% + 16px); padding: 0px; }
figure > table { margin: 0px !important; }
tr { break-inside: avoid; break-after: auto; }
thead { display: table-header-group; }
table { border-collapse: collapse; border-spacing: 0px; width: 100%; overflow: auto; break-inside: auto; text-align: left; }
table.md-table td { min-width: 80px; }
.CodeMirror-gutters { border-right: 0px; background-color: inherit; }
.CodeMirror { text-align: left; }
.CodeMirror-placeholder { opacity: 0.3; }
.CodeMirror pre { padding: 0px 4px; }
.CodeMirror-lines { padding: 0px; }
div.hr:focus { cursor: none; }
pre { white-space: pre-wrap; }
pre.contain-cm { white-space: normal; }
.CodeMirror-gutters { margin-right: 4px; }
.md-fences { font-size: 0.9rem; display: block; break-inside: avoid; text-align: left; overflow: visible; white-space: pre; background: inherit; position: relative !important; }
.md-diagram-panel { width: 100%; margin-top: 10px; text-align: center; padding-top: 0px; padding-bottom: 8px; overflow-x: auto; }
.md-fences.mock-cm { white-space: pre-wrap; }
.show-fences-line-number .md-fences { padding-left: 0px; }
.show-fences-line-number .md-fences.mock-cm { padding-left: 40px; }
.CodeMirror-line { break-inside: avoid; }
.footnotes { opacity: 0.8; font-size: 0.9rem; margin-top: 1em; margin-bottom: 1em; }
.footnotes + .footnotes { margin-top: 0px; }
.md-reset { margin: 0px; padding: 0px; border: 0px; outline: 0px; vertical-align: top; background: 0px 0px; text-decoration: none; text-shadow: none; float: none; position: static; width: auto; height: auto; white-space: nowrap; cursor: inherit; -webkit-tap-highlight-color: transparent; line-height: normal; font-weight: 400; text-align: left; box-sizing: content-box; direction: ltr; }
li div { padding-top: 0px; }
blockquote { margin: 1rem 0px; }
li .mathjax-block, li p { margin: 0.5rem 0px; }
li { margin: 0px; position: relative; }
blockquote > :last-child { margin-bottom: 0px; }
blockquote > :first-child, li > :first-child { margin-top: 0px; }
.footnotes-area { color: rgb(136, 136, 136); margin-top: 0.714rem; padding-bottom: 0.143rem; white-space: normal; }
.footnote-line { white-space: pre-wrap; }
@media print {
body, html { border: 1px solid transparent; height: 99%; break-after: avoid; break-before: avoid; }
#write { margin-top: 0px; border-color: transparent !important; }
.typora-export * { -webkit-print-color-adjust: exact; }
html.blink-to-pdf { font-size: 13px; }
.typora-export #write { padding-left: 1cm; padding-right: 1cm; padding-bottom: 0px; break-after: avoid; }
.typora-export #write::after { height: 0px; }
@page { margin: 20mm 0px; }
}
.footnote-line { margin-top: 0.714em; font-size: 0.7em; }
a img, img a { cursor: pointer; }
pre.md-meta-block { font-size: 0.8rem; min-height: 0.8rem; white-space: pre-wrap; background: rgb(204, 204, 204); display: block; overflow-x: hidden; }
p > img:only-child { display: block; margin: auto; }
.md-line > .md-image:only-child, p > .md-image:only-child { display: inline-block; width: 100%; text-align: center; }
#write .MathJax_Display { margin: 0.8em 0px 0px; }
.mathjax-block { white-space: pre; overflow: hidden; width: 100%; }
p + .mathjax-block { margin-top: -1.143rem; }
.mathjax-block:not(:empty)::after { display: none; }
[contenteditable="true"]:active, [contenteditable="true"]:focus { outline: 0px; box-shadow: none; }
.md-task-list-item { position: relative; list-style-type: none; }
.task-list-item.md-task-list-item { padding-left: 0px; }
.md-task-list-item > input { position: absolute; top: 0px; left: 0px; margin-left: -1.2em; margin-top: calc(1em - 10px); }
.math { font-size: 1rem; }
.md-toc { min-height: 3.58rem; position: relative; font-size: 0.9rem; border-radius: 10px; }
.md-toc-content { position: relative; margin-left: 0px; }
.md-toc-content::after, .md-toc::after { display: none; }
.md-toc-item { display: block; color: rgb(65, 131, 196); }
.md-toc-item a { text-decoration: none; }
.md-toc-inner:hover { }
.md-toc-inner { display: inline-block; cursor: pointer; }
.md-toc-h1 .md-toc-inner { margin-left: 0px; font-weight: 700; }
.md-toc-h2 .md-toc-inner { margin-left: 2em; }
.md-toc-h3 .md-toc-inner { margin-left: 4em; }
.md-toc-h4 .md-toc-inner { margin-left: 6em; }
.md-toc-h5 .md-toc-inner { margin-left: 8em; }
.md-toc-h6 .md-toc-inner { margin-left: 10em; }
@media screen and (max-width: 48em) {
.md-toc-h3 .md-toc-inner { margin-left: 3.5em; }
.md-toc-h4 .md-toc-inner { margin-left: 5em; }
.md-toc-h5 .md-toc-inner { margin-left: 6.5em; }
.md-toc-h6 .md-toc-inner { margin-left: 8em; }
}
a.md-toc-inner { font-size: inherit; font-style: inherit; font-weight: inherit; line-height: inherit; }
.footnote-line a:not(.reversefootnote) { color: inherit; }
.md-attr { display: none; }
.md-fn-count::after { content: "."; }
code, pre, tt { font-family: var(--monospace); }
.md-comment { color: rgb(162, 127, 3); opacity: 0.8; font-family: var(--monospace); }
code { text-align: left; }
a.md-print-anchor { border-width: initial !important; border-style: none !important; border-color: initial !important; display: inline-block !important; position: absolute !important; width: 1px !important; right: 0px !important; outline: 0px !important; background: 0px 0px !important; text-decoration: initial !important; text-shadow: initial !important; }
.md-inline-math .MathJax_SVG .noError { display: none !important; }
.mathjax-block .MathJax_SVG_Display { text-align: center; margin: 1em 0px; position: relative; text-indent: 0px; max-width: none; max-height: none; min-height: 0px; min-width: 100%; width: auto; display: block !important; }
.MathJax_SVG_Display, .md-inline-math .MathJax_SVG_Display { width: auto; margin: inherit; display: inline-block !important; }
.MathJax_SVG .MJX-monospace { font-family: monospace; }
.MathJax_SVG .MJX-sans-serif { font-family: sans-serif; }
.MathJax_SVG { display: inline; font-style: normal; font-weight: 400; line-height: normal; zoom: 90%; text-indent: 0px; text-align: left; text-transform: none; letter-spacing: normal; word-spacing: normal; word-wrap: normal; white-space: nowrap; float: none; direction: ltr; max-width: none; max-height: none; min-width: 0px; min-height: 0px; border: 0px; padding: 0px; margin: 0px; }
.MathJax_SVG * { transition: none; }
.os-windows.monocolor-emoji .md-emoji { font-family: "Segoe UI Symbol", sans-serif; }
.md-diagram-panel > svg { max-width: 100%; }
[lang="flow"] svg, [lang="mermaid"] svg { max-width: 100%; }
[lang="mermaid"] .node text { font-size: 1rem; }
table tr th { border-bottom: 0px; }
.cm-s-inner .cm-variable, .cm-s-inner .cm-operator, .cm-s-inner .cm-property { color: rgb(184, 191, 198); }
.cm-s-inner .cm-keyword { color: rgb(200, 143, 208); }
.cm-s-inner .cm-tag { color: rgb(125, 244, 106); }
.cm-s-inner .cm-attribute { color: rgb(117, 117, 228); }
.CodeMirror div.CodeMirror-cursor { border-left: 1px solid rgb(184, 191, 198); z-index: 3; }
.cm-s-inner .cm-string { color: rgb(210, 107, 107); }
.cm-s-inner .cm-comment, .cm-s-inner.cm-comment { color: rgb(218, 146, 74); }
.cm-s-inner .cm-header, .cm-s-inner .cm-def, .cm-s-inner.cm-header, .cm-s-inner.cm-def { color: rgb(141, 141, 240); }
.cm-s-inner .cm-quote, .cm-s-inner.cm-quote { color: rgb(87, 172, 87); }
.cm-s-inner .cm-hr { color: rgb(216, 213, 213); }
.cm-s-inner .cm-link { color: rgb(211, 211, 239); }
.cm-s-inner .cm-negative { color: rgb(217, 80, 80); }
.cm-s-inner .cm-positive { color: rgb(80, 230, 80); }
.cm-s-inner .cm-string-2 { color: rgb(255, 85, 0); }
.cm-s-inner .cm-meta, .cm-s-inner .cm-qualifier { color: rgb(183, 179, 179); }
.cm-s-inner .cm-builtin { color: rgb(243, 179, 248); }
.cm-s-inner .cm-bracket { color: rgb(153, 153, 119); }
.cm-s-inner .cm-atom, .cm-s-inner.cm-atom { color: rgb(132, 182, 203); }
.cm-s-inner .cm-number { color: rgb(100, 171, 143); }
.cm-s-inner .cm-variable { color: rgb(184, 191, 198); }
.cm-s-inner .cm-variable-2 { color: rgb(159, 186, 213); }
.cm-s-inner .cm-variable-3 { color: rgb(28, 198, 133); }
.CodeMirror-selectedtext, .CodeMirror-selected { background: rgb(74, 137, 220); text-shadow: none; color: rgb(255, 255, 255) !important; }
:root { --bg-color: #363B40; --side-bar-bg-color: #2E3033; --text-color: #b8bfc6; --select-text-bg-color:#4a89dc; --control-text-color: #b7b7b7; --control-text-hover-color: #eee; --window-border: 1px dashed #9b9b9b; --active-file-bg-color: rgb(34, 34, 34); --active-file-border-color: #8d8df0; --active-file-text-color: white; --item-hover-bg-color: #70717d; --item-hover-text-color: white; --primary-color: #6dc1e7; }
html { font-size: 16px; }
html, body { text-size-adjust: 100%; background: var(--bg-color); fill: currentcolor; }
#write { max-width: 914px; padding-top: 20px; }
html, body, button, input, select, textarea, div.code-tooltip-content { color: rgb(184, 191, 198); }
div.code-tooltip, .md-hover-tip .md-arrow::after { background: rgb(75, 83, 90); }
.popover.bottom > .arrow::after { border-bottom-color: rgb(75, 83, 90); }
html, body, button, input, select, textarea { font-style: normal; line-height: 1.625rem; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; }
hr { height: 2px; border: 0px; margin: 24px 0px !important; }
h1, h2, h3, h4, h5, h6 { font-family: "Lucida Grande", Corbel, sans-serif; font-weight: normal; clear: both; word-wrap: break-word; margin: 0px; padding: 0px; color: rgb(222, 222, 222); }
h1 { font-size: 2.5rem; line-height: 2.75rem; margin-bottom: 1.5rem; letter-spacing: -1.5px; }
h2 { font-size: 1.63rem; line-height: 1.875rem; margin-bottom: 1.5rem; letter-spacing: -1px; font-weight: bold; }
h3 { font-size: 1.17rem; line-height: 1.5rem; margin-bottom: 1.5rem; letter-spacing: -1px; font-weight: bold; }
h4 { font-size: 1.12rem; line-height: 1.375rem; margin-bottom: 1.5rem; color: white; }
h5 { font-size: 0.97rem; line-height: 1.25rem; margin-bottom: 1.5rem; font-weight: bold; }
h6 { font-size: 0.93rem; line-height: 1rem; margin-bottom: 0.75rem; color: white; }
@media (min-width: 980px) {
h3.md-focus::before, h4.md-focus::before, h5.md-focus::before, h6.md-focus::before { color: rgb(221, 221, 221); border: 1px solid rgb(221, 221, 221); border-radius: 3px; position: absolute; left: -1.64286rem; top: 0.357143rem; float: left; font-size: 9px; padding-left: 2px; padding-right: 2px; vertical-align: bottom; font-weight: normal; line-height: normal; }
h3.md-focus::before { content: "h3"; }
h4.md-focus::before { content: "h4"; }
h5.md-focus::before { content: "h5"; top: 0px; }
h6.md-focus::before { content: "h6"; top: 0px; }
}
a { text-decoration: none; outline: 0px; }
a:hover { outline: 0px; }
a:focus { outline: dotted thin; }
sup.md-footnote { background-color: rgb(85, 85, 85); color: rgb(221, 221, 221); }
p { word-wrap: break-word; }
p, ul, dd, ol, hr, address, pre, table, iframe, .wp-caption, .wp-audio-shortcode, .wp-video-shortcode { margin-top: 0px; margin-bottom: 1.5rem; }
audio:not([controls]) { display: none; }
[hidden] { display: none; }
.in-text-selection, ::selection { background: rgb(74, 137, 220); color: rgb(255, 255, 255); text-shadow: none; }
ul, ol { padding: 0px 0px 0px 1.875rem; }
ul { list-style: square; }
ol { list-style: decimal; }
ul ul, ol ol, ul ol, ol ul { margin: 0px; }
b, th, dt, strong { font-weight: bold; }
i, em, dfn, cite { font-style: italic; }
blockquote { margin: 35px 0px 1.875rem 1.875rem; border-left: 2px solid rgb(71, 77, 84); padding-left: 30px; }
pre, code, kbd, tt, var { background: rgba(0, 0, 0, 0.05); font-size: 0.875rem; font-family: Monaco, Consolas, "Andale Mono", "DejaVu Sans Mono", monospace; }
pre.md-fences { padding: 10px 30px; margin-bottom: 20px; border: 1px solid; }
.md-fences .code-tooltip { bottom: -3.2em; }
code, kbd, tt, var { padding: 2px 5px; }
table { max-width: 100%; width: 100%; border-collapse: collapse; border-spacing: 0px; }
th, td { padding: 5px 10px; vertical-align: top; }
a { transition: all 0.2s ease-in-out; }
hr { background: rgb(71, 77, 84); }
#write > :first-child { margin-top: 40px; }
h1 { margin-top: 2em; }
a { color: rgb(224, 224, 224); text-decoration: underline; }
a:hover { color: rgb(255, 255, 255); }
.md-inline-math script { color: rgb(129, 177, 219); }
b, th, dt, strong { color: rgb(222, 222, 222); }
mark { background: rgb(211, 212, 14); }
blockquote { color: rgb(157, 162, 166); }
table a { color: rgb(222, 222, 222); }
th, td { border: 1px solid rgb(71, 77, 84); }
.task-list { padding-left: 0px; }
.md-task-list-item { padding-left: 1.25rem; }
.md-task-list-item > input { top: auto; }
.md-task-list-item > input::before { content: ""; display: inline-block; width: 0.875rem; height: 0.875rem; vertical-align: middle; text-align: center; border: 1px solid rgb(184, 191, 198); background-color: rgb(54, 59, 64); margin-top: -0.4rem; }
.md-task-list-item > input:checked::before, .md-task-list-item > input[checked]::before { content: "√"; font-size: 0.625rem; line-height: 0.625rem; color: rgb(222, 222, 222); }
.CodeMirror-gutters { background: transparent; border-right: 1px solid transparent; }
.auto-suggest-container { border: 0px; background-color: rgb(82, 92, 101); }
#typora-quick-open { background-color: rgb(82, 92, 101); }
#typora-quick-open input { background-color: rgb(82, 92, 101); border-width: 0px 0px 1px; border-top-style: initial; border-right-style: initial; border-left-style: initial; border-top-color: initial; border-right-color: initial; border-left-color: initial; border-image: initial; border-bottom-style: solid; border-bottom-color: grey; }
.typora-quick-open-item { background-color: inherit; color: inherit; }
.typora-quick-open-item.active { background-color: rgb(77, 139, 219); color: white; }
.typora-search-spinner > div { background-color: rgb(255, 255, 255); }
#write pre.md-meta-block { border-bottom: 1px dashed rgb(204, 204, 204); background: transparent; padding-bottom: 0.6em; line-height: 1.6em; }
.btn, .btn .btn-default { background: transparent; color: rgb(184, 191, 198); }
.ty-table-edit { border-top: 1px solid gray; background-color: rgb(54, 59, 64); }
.popover-title { background: transparent; }
.md-image > .md-meta { color: rgb(187, 187, 187); background: transparent; }
.md-expand.md-image > .md-meta { color: rgb(221, 221, 221); }
#write > h3::before, #write > h4::before, #write > h5::before, #write > h6::before { border: none; border-radius: 0px; color: rgb(136, 136, 136); text-decoration: underline; left: -1.4rem; top: 0.2rem; }
#write > h3.md-focus::before { top: 2px; }
#write > h4.md-focus::before { top: 2px; }
.md-toc-item { color: rgb(168, 194, 220); }
#write div.md-toc-tooltip { background-color: rgb(54, 59, 64); }
.dropdown-menu .btn:hover, .dropdown-menu .btn:focus, .md-toc .btn:hover, .md-toc .btn:focus { color: white; background: black; }
#toc-dropmenu { background: rgba(50, 54, 59, 0.93); border: 1px solid rgba(253, 253, 253, 0.15); }
#toc-dropmenu .divider { background-color: rgb(155, 155, 155); }
.outline-expander::before { top: 2px; }
#typora-sidebar { box-shadow: none; border-right: none; }
.sidebar-tabs { border-bottom: 0px; }
#typora-sidebar:hover .outline-title-wrapper { border-left: 1px dashed; }
.outline-title-wrapper .btn { color: inherit; }
.outline-item:hover { border-color: rgb(54, 59, 64); background-color: rgb(54, 59, 64); color: white; }
h1.md-focus .md-attr, h2.md-focus .md-attr, h3.md-focus .md-attr, h4.md-focus .md-attr, h5.md-focus .md-attr, h6.md-focus .md-attr, .md-header-span .md-attr { color: rgb(140, 142, 146); display: inline; }
.md-comment { color: rgb(90, 149, 227); opacity: 1; }
.md-inline-math g, .md-inline-math svg { stroke: rgb(184, 191, 198) !important; fill: rgb(184, 191, 198) !important; }
[md-inline="inline_math"] { color: rgb(156, 178, 233); }
#math-inline-preview .md-arrow::after { background: black; }
.modal-content { background: var(--bg-color); border: 0px; }
.modal-title { font-size: 1.5em; }
.modal-content input { background-color: rgba(26, 21, 21, 0.51); color: white; }
.modal-content .input-group-addon { background-color: rgba(0, 0, 0, 0.17); color: white; }
.modal-backdrop { background-color: rgba(174, 174, 174, 0.7); }
.modal-content .btn-primary { border-color: var(--primary-color); }
.md-table-resize-popover { background-color: rgb(75, 83, 90); }
.form-inline .input-group .input-group-addon { color: white; }
#md-searchpanel { border-bottom: 1px dashed grey; }
.context-menu { background-color: rgb(66, 70, 74); }
.context-menu.dropdown-menu .divider { background-color: rgb(119, 119, 119); }
footer { color: inherit; }
@media (max-width: 1000px) {
footer { border-top: none; }
footer:hover { color: inherit; }
}
#file-info-file-path .file-info-field-value:hover { background-color: rgb(85, 85, 85); color: rgb(222, 222, 222); }
.megamenu-content, .megamenu-opened header { background: var(--bg-color); }
.megamenu-menu-panel h2, .megamenu-menu-panel h1, .long-btn { color: inherit; }
.megamenu-menu-panel input[type="text"] { background: inherit; border-width: 0px 0px 1px; border-top-style: initial; border-right-style: initial; border-left-style: initial; border-color: initial; border-image: initial; border-bottom-style: solid; }
#recent-file-panel-action-btn { background: inherit; border: 1px solid grey; }
.megamenu-menu-panel .btn:hover, .megamenu-menu-panel .btn:focus, .megamenu-menu-panel .btn.focus { color: white; }
.megamenu-menu-panel .dropdown-menu > li > a { color: inherit; background-color: rgb(47, 53, 58); text-decoration: none; }
.megamenu-menu-panel table td:nth-child(1) { color: inherit; font-weight: bold; }
.megamenu-menu-panel tbody tr:hover td:nth-child(1) { color: white; }
.modal-footer .btn-default, .modal-footer .btn-primary, .modal-footer .btn-default:not(:hover) { border: 1px solid transparent; }
.btn-default:hover, .btn-default:focus, .btn-default.focus, .btn-default:active, .btn-default.active, .open > .dropdown-toggle.btn-default { color: white; border: 1px solid rgb(221, 221, 221); background-color: inherit; }
.modal-header { border-bottom: 0px; }
.modal-footer { border-top: 0px; }
#recent-file-panel tbody tr:nth-child(2n-1) { background-color: transparent !important; }
.megamenu-menu-panel tbody tr:hover td:nth-child(2) { color: inherit; }
.megamenu-menu-panel .btn { border: 1px solid rgb(238, 238, 238); background: transparent; }
.mouse-hover .toolbar-icon.btn:hover, #w-full.mouse-hover, #w-pin.mouse-hover { background-color: inherit; }
.typora-node::-webkit-scrollbar { width: 5px; }
.typora-node::-webkit-scrollbar-thumb:vertical { background: rgba(250, 250, 250, 0.3); }
.typora-node::-webkit-scrollbar-thumb:vertical:active { background: rgba(250, 250, 250, 0.5); }
#w-unpin { background-color: rgb(65, 130, 196); }
#top-titlebar, #top-titlebar * { color: var(--item-hover-text-color); }
.typora-sourceview-on #toggle-sourceview-btn, #footer-word-count:hover, .show-word-count #footer-word-count { background: rgb(51, 51, 51); }
#toggle-sourceview-btn:hover { color: rgb(238, 238, 238); background: rgb(51, 51, 51); }
.on-focus-mode .md-end-block:not(.md-focus):not(.md-focus-container) * { color: rgb(104, 104, 104) !important; }
.on-focus-mode .md-end-block:not(.md-focus) img, .on-focus-mode .md-task-list-item:not(.md-focus-container) > input { }
.on-focus-mode li[cid]:not(.md-focus-container) { color: rgb(104, 104, 104); }
.on-focus-mode .md-fences.md-focus .CodeMirror-code > :not(.CodeMirror-activeline) *, .on-focus-mode .CodeMirror.cm-s-inner:not(.CodeMirror-focused) * { color: rgb(104, 104, 104) !important; }
.on-focus-mode .md-focus, .on-focus-mode .md-focus-container { color: rgb(255, 255, 255); }
.on-focus-mode #typora-source .CodeMirror-code > :not(.CodeMirror-activeline) * { color: rgb(104, 104, 104) !important; }
#write .md-focus .md-diagram-panel { border: 1px solid rgb(221, 221, 221); margin-left: -30px; }
#write.show-fences-line-number .md-focus .md-diagram-panel { margin-left: auto; }
.md-diagram-panel-error { color: rgb(241, 144, 142); }
.active-tab-files #info-panel-tab-file, .active-tab-files #info-panel-tab-file:hover, .active-tab-outline #info-panel-tab-outline, .active-tab-outline #info-panel-tab-outline:hover { color: rgb(238, 238, 238); }
.sidebar-footer-item:hover, .footer-item:hover { background: inherit; color: white; }
.ty-side-sort-btn.active, .ty-side-sort-btn:hover, .selected-folder-menu-item a::after { color: white; }
#sidebar-files-menu { border: 1px solid; box-shadow: rgba(0, 0, 0, 0.79) 4px 4px 20px; background-color: var(--bg-color); }
.file-list-item { border-bottom: none; }
.file-list-item-summary { opacity: 1; }
.file-list-item.active:first-child { border-top: none; }
.sidebar-footer { border-top: 1px solid rgb(85, 85, 85); }
.file-node-background { height: 32px; }
.file-library-node.active > .file-node-content, .file-list-item.active { color: var(--active-file-text-color); }
.file-library-node.active > .file-node-background { background-color: var(--active-file-bg-color); }
.file-list-item.active { background-color: var(--active-file-bg-color); }
#ty-tooltip { background-color: black; color: rgb(238, 238, 238); }
#write { cursor: -webkit-image-set(url("night/cursor.png") 1x, url("night/cursor@2x.png") 2x) 8 8, auto; }
.md-task-list-item > input { margin-left: -1.3em; margin-top: calc(1rem - 10px); -webkit-appearance: none; }
.typora-export p, .typora-export .footnote-line {white-space: normal;}
</style>
</head>
<body class='typora-export' >
<div id='write' class = 'is-node'><h1><a name='header-n0' class='md-header-anchor '></a>Martin Banov</h1><ul><li><strong>Mobile</strong>: (+359) 887313799</li><li><strong>E-mail</strong>: <a href='mailto:rhyzome@disroot.org' target='_blank' class='url'>rhyzome@disroot.org</a>, <a href='mailto:martin.banov86@gmail.com' target='_blank' class='url'>martin.banov86@gmail.com</a></li><li><strong>Skype:</strong> tryl.qyi</li><li><strong>Telegram:</strong> @Rhyzom</li><li><strong>Nationality</strong>: Bulgarian</li><li><strong>Date of Birth</strong>: 15.02.1986 <br/></li></ul><p> </p><h2><a name='header-n23' class='md-header-anchor '></a>Profile / Summary</h2><hr /><p>Background in Biology and Chemistry, studied in Sofia University (Bulgaria) and Aarhus Technical College, Denmark (as Chemical and Biotechnical Science). Occasionally taking extra-curricular courses and visiting lectures in other departments/areas where having been interested in or curious to know more about (philosophy, art history, journalism, etc.) Worked as an intern for a brief period of time in a biotechnology institute before reorienting towards working in IT.</p><p>Following several years paid work experience in the IT industry, mostly in the area/departments of *NIX systems administration: server maintenance, monitoring and support, system upgrades and security, etc. Both in large enterprise and small startup company environments. Familiarized myself with various protocol stacks and industry standards in the process of work, adapting to company environment and culture, realizing how responsibilities are allocated and carried out among departments cooperating in various ways and to different degrees.</p><p>Lived for a few year long intervals in a number of different countries over the past decade (Czech, Israel, Taiwan, etc.), having during that time also taken up other kinds of work along the way, including briefly at an investment brokerage firm in Prague, construction and drilling jobs, writing (articles, news, high-level technical overviews, guides, etc.), translations, editing and proofreading, English teaching, software-related and web design, etc. Including an year and a half long stretch of mostly volunteer work in an Israeli kibbutz.</p><p>Largely self-taught and perpetually occupied with expanding my scope of understanding and erudition. Often self-invested in researching and learning about something specific in more depth and detail, with a range of interests and varying degrees of familiarity/knowledge across different domains and disciplines. Recognizing of the necessity for cultivating a nuanced, multi-disciplinary perspective and approach to problem-solving in dynamic circumstances involving complex systems and non-linear interdependencies. Aware of the (sometimes quite significant) gaps between theory and practice, and that models mostly serve as orientation heuristics and rough approximations rather than universally applicable recipes and prescriptions.</p><p> </p><h2><a name='header-n35' class='md-header-anchor '></a>Education</h2><hr /><h4><a name='header-n37' class='md-header-anchor '></a><strong>Aarhus Technical College, Denmark 2008 - 2010</strong></h4><p><em>Chemical and Biotechnical Science</em></p><h4><a name='header-n40' class='md-header-anchor '></a><strong>Sofia University, Bulgaria 2005 - 2008</strong></h4><p><em>Biology and Chemistry (opted for extra-curricular courses in: neurobiology, Latin, etc.)</em> </p><h4><a name='header-n43' class='md-header-anchor '></a><strong>Mathematics High School, Geo Milev (Pleven, Bulgaria) 1999 - 2004</strong></h4><p><em>Focus/class profile in Geography, Mathematics and Natural Sciences</em></p><p> </p><h2><a name='header-n48' class='md-header-anchor '></a>Work Experience</h2><hr /><h4><a name='header-n50' class='md-header-anchor '></a><strong>English Teacher</strong> <span> </span> <strong>Aug. 2017 – Jan. 2018</strong></h4><ul><li>Teaching English at public and private schools in Ho Chi Minh City, Vietnam. Primary, secondary and high school levels. Taking the opportunity to learn how to pedagogically approach teaching and managing a class, keeping students focused and interested, improvising on curriculum and providing additional materials according to individual interests and inclinations. <span> </span></li></ul><h3><a name='header-n56' class='md-header-anchor '></a><strong>Junior Investment Broker</strong> <span> </span> <strong>Oct. 2016 – April 2017</strong></h3><p><em>FxNet Ltd., Czech Republic, Prague</em></p><ul><li>Tracking market environment and daily price movements of specific commodities, financial instruments, class assets and equities, observing capital flows and investor sentiments, news and public information flows in trying to assess investment opportunities, associated risk exposures and how new information gets priced in, mostly taking the opportunity to learn as much as I can about the workings and logic of what drives markets and market behavior from the standing of such position. Communicating relevant information and useful discoveries to clients, colleagues and financial advisors. Getting to learn about cross-cultural differences and people's motivations in participating in different markets. <span> </span></li></ul><h4><a name='header-n63' class='md-header-anchor '></a><strong>General Maintenance, Construction, Plumbing, Irrigation, Etc.</strong> <strong>Feb. 2015 – Feb. 2016</strong></h4><p><em>Kibbutz Nir Yitzhaq, Israel</em></p><ul><li>Lived and worked on a communal settlement in the Negev desert in Israel. Responsibilities varied from construction and repairs to monitoring water flows and irrigation systems, plumbing, gardening and kitchen work. Learned quite a bit about community organization/administration, Israeli and Middle Eastern culture, the dynamics of the region and people's attitudes in the daily life. Spent long afternoons reading and even studied Hebrew for a short while.</li></ul><h4><a name='header-n70' class='md-header-anchor '></a><strong>Assistant Driller</strong> <strong>Oct. 2014 – Jan. 2015</strong></h4><p><em>Geovod, Bulgaria</em></p><ul><li>Drilling and setting up water wells (up to 40 meters deep) around Northern Bulgaria with a semi-improvised cable tool steel rig and old Soviet era gear. Assembling and disassembling equipment, welding components, setting up sites, changing rigs as needed, watching for any equipment irregularity or sign of malfunction and sliding down and locking the pipes and water pump once clean water begins to rise from the bottom. Took up about five such individual, successfully completed assignments.</li></ul><h4><a name='header-n77' class='md-header-anchor '></a><strong>Linux Administration and SIP Server Support</strong> <strong>Jan. - June 2013</strong></h4><p><em>CircleTech, s.r.o., Czech Republic, Prague</em></p><ul><li>Systems/server administration and support for a company developing and maintaining a secure, fully encrypted mobile communications system and its mobile application for client privacy protection (including voice calls, text messages and e-mail). Responsibilities included SIP (Session Initiation Protocol) server maintenance and support (the traffic control node between client-side application and service provider which serves as a router switchboard encrypting all communications through the Internet), periodic security audits and upgrades, running tests on newly made changes or software additions, ensuring smooth, uninterrupted operation of services, maintaining of high security standards and practices and other tasks of such nature.</li></ul><h4><a name='header-n84' class='md-header-anchor '></a><strong>Gig Economy Work: Freelance and Remote</strong> <strong>2013 - Present</strong></h4><ul><li>Irregular part-time, temporary or by the piece remote jobs and assignments. Having varied from writing article and news pieces, editing and proofreading papers and technically oriented materials (tutorials and guides, product descriptions and system specifications, etc.), translations and transcriptions, setting up server configurations or writing customized scripts for automating specific operations (data scraping, a smart contract outsourcing a computation or needing to fetch external data via an oracle in Ethereum, etc.) Mostly trying to selectively pick what best suits my interests of areas I'd like to acquire more experience and practice in.</li></ul><h4><a name='header-n89' class='md-header-anchor '></a><strong>Mobile UNIX Administration</strong> <strong>Feb. - Apr. 2012</strong></h4><p><em>AT&T, Czech Republic, Brno</em></p><ul><li>Mobile UNIX administration involving management and monitoring of servers and mobile service applications across multiple UNIX servers and data points in a highly structured and role divided work environment, largely coordinated by managers from across the Atlantic. Work as part of a team supporting operational related activities and providing support to other departments and teams as required in support of other business objectives. Made some acquaintances which developed into life-long friendships.</li></ul><h4><a name='header-n96' class='md-header-anchor '></a><strong>Linux Administration, Web Application Support</strong> <strong>Apr. - Sept. 2011</strong></h4><p><em>Codix, Bulgaria</em></p><ul><li>Web servers and middleware application support (Apache Tomcat), installation and deployment of company software product, Apache web servers and supporting application and database components, day-to-day maintenance of company client environments, upgrades and shell scripts (for programming procedures and routines that lend themselves to automation), system components configuration and integration, vulnerability tracking and periodic security audits and tests, and others according to the circumstances of the situation (all mostly revolving around an event-driven software solution for businesses managing their financial activities with other institutions and banks). <span> </span></li></ul><h4><a name='header-n103' class='md-header-anchor '></a><strong>2nd</strong> <strong>Level UNIX Support</strong> <strong>Mar. – Jun. 2010</strong></h4><p><em>Hewlett Packard, Bulgaria</em></p><ul><li>2nd level UNIX support. System monitoring and diagnostics of remote client servers and data centers, taking care of arriving (mostly trivial and repetitive) lower priority issues and sorting others in the ticketing system according to type/category of issue and level of priority after evaluating its severity (how critical the issue in interfering with performance of regular client operations).</li></ul><h4><a name='header-n110' class='md-header-anchor '></a><strong>Laboratory Assistant</strong> <strong>Feb. - May 2009</strong></h4><p><em>Agrobiotech (Institute of Biotechnology), Bulgaria</em></p><ul><li>Biotech lab worker and research assistant - <em>in vitro</em> work with plant cell cultures. Preparing culture media, keeping track of biological/metabolic processes and environmental parameters, DNA isolation and PCR, collecting, documenting and comparing experiment results, following laboratory protocol guidelines and established standards, etc. </li></ul><h4><a name='header-n117' class='md-header-anchor '></a><strong>System Administration and Maintenance</strong> <strong>Aug. 2008 – Mar. 2009</strong></h4><p><em>Contract Ltd., Bulgaria</em></p><ul><li><p>Networking, office equipment and computers maintenance, installations and setups (user accounts, access control, software packages and suites, peripherals and drivers, anti-virus, etc.) Backups, recoveries, troubleshooting and support. Translations (from and to Bulgarian and English), client e-mail communications and maintaining web presence, etc.</p><p> </p></li></ul><h2><a name='header-n126' class='md-header-anchor '></a>Skills</h2><hr /><p>Non-exhaustive list in no particular order:</p><ul><li><p><strong>Languages</strong>: English, Bulgarian - perfectly fluent (plus some Danish and German)</p></li><li><p><strong>Linux/UNIX-like environments:</strong> Debian mostly, ArchLinux previously </p></li><li><p><strong>Text, IDEs:</strong> Atom, vim, Markdown, LaTeX, pandoc, etc.</p></li><li><p><strong>Programming/scripting:</strong> Python, Javascript, Lua, bash shell (regex, grep, sed/awk, dataflow pipes, etc.)</p></li><li><p><strong>Security and penetration testing</strong>, some previous experience with (not too recent, however). The standard toolbox of what now goes under Kali Linux (formerly BackTrack): Wireshark, Metasploit, Hydra, OWASP, nmap, nikto, netcat, etc. </p></li><li><p><strong>Data science with Python</strong>, some working knowledge in (looking to possibly further expand upon).</p></li><li><p><strong>Virtualization</strong>: Docker, VirtualBox</p></li><li><p><strong>Smart contracts and dApps:</strong> Solidity and Vyper (Ethereum EVM scripts)</p></li><li><p><strong>Ethereum:</strong> Truffle suite (Ganache, Drizzle, etc.), Oraclize, Remix IDE (Solidity), Vyper, Mythril (contract security analysis and vulnerability scanner)</p></li><li><p><strong>Semantic knowledge representation:</strong> OWL (Web Ontology Language), Resource Description Framework (RDF)</p></li><li><p><strong>Web publishing:</strong> Jekyll, Hugo, Hexo, WordPress, Flask</p></li><li><p><strong>Distributed version control:</strong> Github</p></li><li><p><strong>Web crawling and search engines:</strong> Web data scraping (e.g., Python scrapy), Google dorking and syntax, Google analytics, SEO</p></li><li><p><strong>Peer-to-peer protocols and apps:</strong> IPFS, Kademlia, etc.</p></li><li><p><strong>Model visualization:</strong> UML (Unified Modeling Language)</p></li><li><p><strong>Markup:</strong> XML, (X)HTML, JSON and YAML (data interchange)</p></li><li><p><strong>Other:</strong> SSH, rsync (backup), curl, wget, etc.</p></li><li><p><strong>Quick to learn and pick up</strong> on new things as I come across them (especially if properly motivated)</p></li><li><p><strong>Easily a team player</strong>, granted the team is more or less on the same page in their ideas of what the purpose of our joint efforts is and what are the goals we think we are together working to pursue (as people sometimes have very strange notions as to what the nature and purpose of their work is, perhaps consistent with and/or revealing of what motivates them individually). </p></li><li><p><strong>Insisting on actually understanding</strong> what I am doing as thoroughly as possible and feel a sense of satisfaction from succeeding at breaking things down for others in terms that make sense to them in their individual circumstances of how they could meaningfully frame them. </p></li><li><p><strong>Driven by interest, curiosity and experimentation</strong> as well as to diversify skills, acquire knowledge and accumulate experience in applied practice. Highly appreciative and respectful of people I can learn something significant or useful from.</p><p> </p></li></ul><h2><a name='header-n196' class='md-header-anchor '></a>Areas of Interest</h2><hr /><p>A fairly wide range of varied interests across diverse domains, disciplines and studies (as developed throughout the years). Came to develop an avid interest in distributed systems over the past ~3 years (e.g., systems economies, regimes of data coordination, approaching organizational complexity, forms of shared ledgers and applied data validation heuristics, etc.), fascinated by the possibilities of all the instruments, solutions and methodologies that could be molded and accommodated within such frameworks of articulating and thinking about things (e.g., as possible foundations for evolving complex adaptive systems, in distributed economies geared towards fueling specific applications and serving particular purposes, in the building of integrated knowledge discovery and SaaS platforms, open access public services, emerging markets servicing arising new needs, etc.)</p><p>At the same time trying to be aware of the less predictable consequences of the technology and its specific implementations (as with any new technology or technology-driven phase transition, usually accompanied by large-scale social cataclysms and shifting of power balances) in how they might influence the social fabric and re-organize everyday relations, the potential socio-economic and structural-demographic combined longer term impact and the institutional roles of the technology as it gradually integrates and further evolves alongside other loosely coupled actor-networks. Also, the adequately equipped means for orientation and sense-making within such increasingly complex environments where different motivations and agencies overlap, collude and intertwine.</p><p>Specifically of interest to me in that regard are the undertakings of IOTA and Ceptr (better known as Holochain, which itself constitutes the basis for incrementally building upon and integrating the other sub-system components of Ceptr and its comprehensive vision) as efforts that lay the supporting groundwork for fast approaching future horizons that need be accordingly channeled within structural frameworks capable of effectively utilizing their potential, while minimizing exploitable vulnerabilities and attack surfaces (e.g., the data-driven machine economy in the emerging landscape of interconnected IoT systems and their <em>ad hoc</em> meshnet swarms of sensor-equipped devices, or: organizational sense-making at different scales, forms of decentralized autonomous organization and specialized record-keeping bureaucracies, etc.) - thereby giving some glimpse of an insight of what is necessary for maintaining a sense of grounded orientation in the present as extending into the future.</p><p>A fair example of <em>"sense-making"</em> that I take as such is an area of academic research known as cliodynamics (the term having been coined in the early 2000's). Cliodynamics outlines a multi-disciplinary approach to history which builds upon extensive historical databases in the <em>longue durée</em> that capture key driving variables throughout the history of societies and civilizations, using them to compare and approximate interdependencies, map out and correlate groups of variables (which reveal themselves interdependent in some way or another or together co-evolving and following from one another) and test the assumptions of hypotheses/mathematical models within the approximate ranges of what is known to the extent of lending itself to statistical analyses mapping back to the facts as they unfold along particular trajectories.</p><p>An approach I think generalizable as to eventually develop and extend into many other domains when considered in the context of a Semantic Web 3.0 and in a future where <em>"data is the new crude."</em> Trying to think along what ways could these technologies be applied in and adopted to help make better informed choices and influence sustainable policy-making with broader consideration of systemic consequences and non-linear side effects.</p><p><strong>Influenced and drawing much upon:</strong> </p><ul><li><em>Gilles Deleuze</em> and his conceptual vocabulary (e.g., the rhizome as an <em>image of thought</em>, describing theory and research that allows for <em>"multiple, non-hierarchical entry and exit points in data representation and interpretation."</em>)</li><li><em>Marshall McLuhan</em>. Media theory and studies, <em>"the medium is the message"</em> or how the medium of technology embeds itself and influences the perception of what it conveys, etc.</li><li><em>Bruno Latour</em>. Actor-Network Theory as a material-semiotic approach to social theory and science, which maps how shifting networks of relationships translate back and forth in bringing other agencies into being, revealing in the process often unexplored assumptions underlying some commonly accepted terms and notions.</li></ul><blockquote><p><em>"The challenge is to support diverse, autocatalytic networks of human agents that can propel transformations toward goals such as sustainable energy, fueling the efficient cycling of resources. This is particularly challenging given a social and economic paradigm of short-term localized gain and relatively weak global, unifying, long-term structures to counteract this paradigm."</em></p><ul><li>Bruno Latour</li></ul></blockquote><p><strong>More specific recent areas of interest:</strong> </p><ul><li>Functional and dataflow programming </li><li>Actor-Network Theory (ANT) </li><li>Bayesian methods/probability statistics </li><li>Open communication protocols and networks </li><li>Ways of constructing reliable economic signals (prediction market event derivatives, currency design, etc.)</li><li>Tools and methods for investigation, forensics and audit trail reconstruction of network events in public records (in social networks, blockchain-based public ledgers, web scraping of public registries, etc.) </li><li>Decentralized governance models (setting up specific attractors and autonomous feedback mechanisms) and systems of knowledge representation (i.e., domain-specific ontologies)</li></ul><p> </p><p> </p></div>
</body>
</html>