aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMitja Felicijan <mitja.felicijan@gmail.com>2022-08-27 14:05:48 +0200
committerMitja Felicijan <mitja.felicijan@gmail.com>2022-08-27 14:05:48 +0200
commit9f5454bda6299db43a4e9de5b3716471388b81d9 (patch)
tree1ceedf64a4517a372d70efc2b6f4bbd9478ce792
parente728c3a2cbd06d95cd1226d3b23473816bd0d67e (diff)
downloadmitjafelicijan.com-9f5454bda6299db43a4e9de5b3716471388b81d9.tar.gz
Move blog to Hugo
-rw-r--r--.editorconfig4
-rw-r--r--.gitignore22
-rw-r--r--.vscode/settings.json6
-rw-r--r--Makefile41
-rw-r--r--archetypes/.gitkeep0
-rw-r--r--archetypes/default.md6
-rw-r--r--assets/dfd-rice/layout.svg132
-rw-r--r--assets/pid1/unikernels.svg578
-rwxr-xr-xconfig.ini21
-rw-r--r--config.toml31
-rw-r--r--content/.gitkeep0
-rw-r--r--content/pages/books.md (renamed from posts/books.md)10
-rw-r--r--content/pages/curriculum-vitae.md (renamed from posts/curriculum-vitae.md)12
-rwxr-xr-xcontent/posts/2011-01-13-most-likely-to-succeed-in-year-of-2011.md (renamed from posts/2011-01-13-most-likely-to-succeed-in-year-of-2011.md)10
-rwxr-xr-xcontent/posts/2012-03-09-led-technology-not-so-eco.md (renamed from posts/2012-03-09-led-technology-not-so-eco.md)10
-rwxr-xr-xcontent/posts/2013-10-24-wireless-sensor-networks.md (renamed from posts/2013-10-24-wireless-sensor-networks.md)10
-rwxr-xr-xcontent/posts/2015-11-10-software-development-pitfalls.md (renamed from posts/2015-11-10-software-development-pitfalls.md)10
-rw-r--r--content/posts/2017-03-07-golang-profiling-simplified.md (renamed from posts/2017-03-07-golang-profiling-simplified.md)14
-rw-r--r--content/posts/2017-04-17-what-i-ve-learned-developing-ad-server.md (renamed from posts/2017-04-17-what-i-ve-learned-developing-ad-server.md)10
-rw-r--r--content/posts/2017-04-21-profiling-python-web-applications-with-visual-tools.md (renamed from posts/2017-04-21-profiling-python-web-applications-with-visual-tools.md)16
-rw-r--r--content/posts/2017-08-11-simple-iot-application.md (renamed from posts/2017-08-11-simple-iot-application.md)20
-rw-r--r--content/posts/2018-01-16-using-digitalocean-spaces-object-storage-with-fuse.md (renamed from posts/2018-01-16-using-digitalocean-spaces-object-storage-with-fuse.md)22
-rw-r--r--content/posts/2019-01-03-encoding-binary-data-into-dna-sequence.md (renamed from posts/2019-01-03-encoding-binary-data-into-dna-sequence.md)24
-rw-r--r--content/posts/2019-10-14-simplifying-and-reducing-clutter.md (renamed from posts/2019-10-14-simplifying-and-reducing-clutter.md)10
-rw-r--r--content/posts/2019-10-19-using-sentiment-analysis-for-clickbait-detection.md (renamed from posts/2019-10-19-using-sentiment-analysis-for-clickbait-detection.md)14
-rw-r--r--content/posts/2020-03-22-simple-sse-based-pubsub-server.md (renamed from posts/2020-03-22-simple-sse-based-pubsub-server.md)20
-rw-r--r--content/posts/2020-03-27-create-placeholder-images-with-sharp.md (renamed from posts/2020-03-27-create-placeholder-images-with-sharp.md)10
-rw-r--r--content/posts/2020-03-29-the-strange-case-of-elasticsearch-allocation-failure.md (renamed from posts/2020-03-29-the-strange-case-of-elasticsearch-allocation-failure.md)10
-rw-r--r--content/posts/2020-03-30-my-love-and-hate-relationship-with-nodejs.md (renamed from posts/2020-03-30-my-love-and-hate-relationship-with-nodejs.md)10
-rwxr-xr-xcontent/posts/2020-05-05-remote-work.md (renamed from posts/2020-05-05-remote-work.md)10
-rw-r--r--content/posts/2020-08-15-systemd-disable-wake-onmouse.md (renamed from posts/2020-08-15-systemd-disable-wake-onmouse.md)10
-rw-r--r--content/posts/2020-09-06-esp-and-micropython.md (renamed from posts/2020-09-06-esp-and-micropython.md)12
-rw-r--r--content/posts/2020-09-08-bind-warning-on-login.md (renamed from posts/2020-09-08-bind-warning-on-login.md)12
-rw-r--r--content/posts/2020-09-09-digitalocean-sync.md (renamed from posts/2020-09-09-digitalocean-sync.md)10
-rw-r--r--content/posts/2021-01-24-replacing-dropbox-with-s3.md (renamed from posts/2021-01-24-replacing-dropbox-with-s3.md)12
-rw-r--r--content/posts/2021-01-25-goaccess.md (renamed from posts/2021-01-25-goaccess.md)16
-rw-r--r--content/posts/2021-06-26-simple-world-clock.md (renamed from posts/2021-06-26-simple-world-clock.md)16
-rw-r--r--content/posts/2021-07-30-from-internet-consumer-to-full-hominum-again.md (renamed from posts/2021-07-30-from-internet-consumer-to-full-hominum-again.md)10
-rw-r--r--content/posts/2021-08-01-linux-cheatsheet.md (renamed from posts/2021-08-01-linux-cheatsheet.md)10
-rw-r--r--content/posts/2021-12-03-debian-based-riced-up-distribution-for-developers.md (renamed from posts/2021-12-03-debian-based-riced-up-distribution-for-developers.md)28
-rw-r--r--content/posts/2021-12-25-running-golang-application-as-pid1.md (renamed from posts/2021-12-25-running-golang-application-as-pid1.md)18
-rw-r--r--content/posts/2021-12-30-wap-mobile-web-before-the-web.md (renamed from posts/2021-12-30-wap-mobile-web-before-the-web.md)16
-rw-r--r--content/posts/2022-06-28-sentiment-based-on-political-bias.md (renamed from posts/2022-06-28-sentiment-based-on-political-bias.md)10
-rw-r--r--content/posts/2022-06-30-trying-out-helix-editor.md (renamed from posts/2022-06-30-trying-out-helix-editor.md)12
-rw-r--r--content/posts/2022-07-05-what-would-dna-sound-if-synthesized.md (renamed from posts/2022-07-05-what-would-dna-sound-if-synthesized.md)42
-rw-r--r--content/posts/2022-08-13-algae-spotted-on-river-sava.md (renamed from posts/2022-08-13-algae-spotted-on-river-sava.md)22
-rw-r--r--data/.gitkeep0
-rw-r--r--layouts/.gitkeep0
-rw-r--r--static/.gitkeep0
-rw-r--r--static/algae-sava/dji-algae-0.jpg (renamed from assets/algae-sava/dji-algae-0.jpg)bin145615 -> 145615 bytes
-rw-r--r--static/algae-sava/dji-algae-1.jpg (renamed from assets/algae-sava/dji-algae-1.jpg)bin154416 -> 154416 bytes
-rw-r--r--static/algae-sava/dji-algae-2.jpg (renamed from assets/algae-sava/dji-algae-2.jpg)bin114347 -> 114347 bytes
-rw-r--r--static/algae-sava/dji-algae-3.jpg (renamed from assets/algae-sava/dji-algae-3.jpg)bin128019 -> 128019 bytes
-rw-r--r--static/algae-sava/dji-algae-4.jpg (renamed from assets/algae-sava/dji-algae-4.jpg)bin217747 -> 217747 bytes
-rw-r--r--static/algae-sava/dji-algae-5.jpg (renamed from assets/algae-sava/dji-algae-5.jpg)bin264884 -> 264884 bytes
-rw-r--r--static/cv/avatar.gif (renamed from assets/cv/avatar.gif)bin2174 -> 2174 bytes
-rw-r--r--static/dfd-rice/desktop.png (renamed from assets/dfd-rice/desktop.png)bin329498 -> 329498 bytes
-rw-r--r--static/dfd-rice/install-00.png (renamed from assets/dfd-rice/install-00.png)bin35695 -> 35695 bytes
-rw-r--r--static/dfd-rice/install-01.png (renamed from assets/dfd-rice/install-01.png)bin28042 -> 28042 bytes
-rw-r--r--static/dfd-rice/install-02.png (renamed from assets/dfd-rice/install-02.png)bin21638 -> 21638 bytes
-rw-r--r--static/dfd-rice/install-03.png (renamed from assets/dfd-rice/install-03.png)bin34698 -> 34698 bytes
-rw-r--r--static/dfd-rice/install-04.png (renamed from assets/dfd-rice/install-04.png)bin28346 -> 28346 bytes
-rw-r--r--static/dfd-rice/install-05.png (renamed from assets/dfd-rice/install-05.png)bin13755 -> 13755 bytes
-rw-r--r--static/dfd-rice/installation.svg (renamed from assets/dfd-rice/installation.svg)244
-rw-r--r--static/dfd-rice/layout.png (renamed from assets/dfd-rice/layout.png)bin9072 -> 9072 bytes
-rw-r--r--static/dfd-rice/layout.svg28
-rw-r--r--static/dfd-rice/script.png (renamed from assets/dfd-rice/script.png)bin65747 -> 65747 bytes
-rw-r--r--static/dna-sequence/benchmarks.ods (renamed from assets/dna-sequence/benchmarks.ods)bin21911 -> 21911 bytes
-rw-r--r--static/dna-sequence/chart-encoding-speed.png (renamed from assets/dna-sequence/chart-encoding-speed.png)bin14201 -> 14201 bytes
-rw-r--r--static/dna-sequence/chart-file-sizes.png (renamed from assets/dna-sequence/chart-file-sizes.png)bin12391 -> 12391 bytes
-rw-r--r--static/dna-sequence/dna-basics.jpg (renamed from assets/dna-sequence/dna-basics.jpg)bin165883 -> 165883 bytes
-rw-r--r--static/dna-sequence/quote.png (renamed from assets/dna-sequence/quote.png)bin1068 -> 1068 bytes
-rw-r--r--static/dna-sequence/sample-binary-file.png (renamed from assets/dna-sequence/sample-binary-file.png)bin66417 -> 66417 bytes
-rw-r--r--static/dna-sequence/sample.png (renamed from assets/dna-sequence/sample.png)bin65930 -> 65930 bytes
-rw-r--r--static/dna-synthesized/bison/in.txt (renamed from assets/dna-synthesized/bison/in.txt)0
-rw-r--r--static/dna-synthesized/bison/out.mp3 (renamed from assets/dna-synthesized/bison/out.mp3)bin960469 -> 960469 bytes
-rw-r--r--static/dna-synthesized/bison/spectogram.png (renamed from assets/dna-synthesized/bison/spectogram.png)bin52808 -> 52808 bytes
-rwxr-xr-xstatic/dna-synthesized/elektron/IMG_0619.jpg (renamed from assets/dna-synthesized/elektron/IMG_0619.jpg)bin226025 -> 226025 bytes
-rwxr-xr-xstatic/dna-synthesized/elektron/IMG_0620.jpg (renamed from assets/dna-synthesized/elektron/IMG_0620.jpg)bin242937 -> 242937 bytes
-rwxr-xr-xstatic/dna-synthesized/elektron/IMG_0622.jpg (renamed from assets/dna-synthesized/elektron/IMG_0622.jpg)bin279234 -> 279234 bytes
-rwxr-xr-xstatic/dna-synthesized/elektron/elektron.mp4 (renamed from assets/dna-synthesized/elektron/elektron.mp4)bin22478213 -> 22478213 bytes
-rwxr-xr-xstatic/dna-synthesized/elektron/midi-studio.jpg (renamed from assets/dna-synthesized/elektron/midi-studio.jpg)bin63633 -> 63633 bytes
-rw-r--r--static/dna-synthesized/mouse/in.txt (renamed from assets/dna-synthesized/mouse/in.txt)0
-rw-r--r--static/dna-synthesized/mouse/out.mp3 (renamed from assets/dna-synthesized/mouse/out.mp3)bin864547 -> 864547 bytes
-rw-r--r--static/dna-synthesized/mouse/spectogram.png (renamed from assets/dna-synthesized/mouse/spectogram.png)bin114261 -> 114261 bytes
-rw-r--r--static/dna-synthesized/quote/in.txt (renamed from assets/dna-synthesized/quote/in.txt)0
-rw-r--r--static/dna-synthesized/quote/out.mp3 (renamed from assets/dna-synthesized/quote/out.mp3)bin678973 -> 678973 bytes
-rw-r--r--static/dna-synthesized/quote/spectogram.png (renamed from assets/dna-synthesized/quote/spectogram.png)bin108863 -> 108863 bytes
-rw-r--r--static/dna-synthesized/symphony-no6-1st-movement.mp3 (renamed from assets/dna-synthesized/symphony-no6-1st-movement.mp3)bin11650187 -> 11650187 bytes
-rw-r--r--static/dna-synthesized/symphony-no6-1st-movement.png (renamed from assets/dna-synthesized/symphony-no6-1st-movement.png)bin245694 -> 245694 bytes
-rw-r--r--static/dna-synthesized/taurus/in.txt (renamed from assets/dna-synthesized/taurus/in.txt)0
-rw-r--r--static/dna-synthesized/taurus/out.mp3 (renamed from assets/dna-synthesized/taurus/out.mp3)bin1056599 -> 1056599 bytes
-rw-r--r--static/dna-synthesized/taurus/spectogram.png (renamed from assets/dna-synthesized/taurus/spectogram.png)bin109064 -> 109064 bytes
-rw-r--r--static/do-fuse/copy-benchmarks.tsv (renamed from assets/do-fuse/copy-benchmarks.tsv)0
-rw-r--r--static/do-fuse/fuse-droplets.png (renamed from assets/do-fuse/fuse-droplets.png)bin42891 -> 42891 bytes
-rw-r--r--static/do-fuse/fuse-spaces.png (renamed from assets/do-fuse/fuse-spaces.png)bin32450 -> 32450 bytes
-rw-r--r--static/do-fuse/sqlite-benchmarks.tsv (renamed from assets/do-fuse/sqlite-benchmarks.tsv)0
-rw-r--r--static/dropbox-sync/dropbox-spaces.png (renamed from assets/dropbox-sync/dropbox-spaces.png)bin47661 -> 47661 bytes
-rw-r--r--static/esp8366-micropython/boards.jpg (renamed from assets/esp8366-micropython/boards.jpg)bin98162 -> 98162 bytes
-rw-r--r--static/general/alert-dark.svg (renamed from assets/general/alert-dark.svg)0
-rw-r--r--static/general/alert-light.svg (renamed from assets/general/alert-light.svg)0
-rw-r--r--static/general/elasticlunr.min.js (renamed from assets/general/elasticlunr.min.js)0
-rw-r--r--static/general/favicon.ico (renamed from assets/general/favicon.ico)bin15406 -> 15406 bytes
-rw-r--r--static/general/favicon.png (renamed from assets/general/favicon.png)bin4771 -> 4771 bytes
-rw-r--r--static/go-profiling/golang-profiling-cpu.pdf (renamed from assets/go-profiling/golang-profiling-cpu.pdf)bin16518 -> 16518 bytes
-rw-r--r--static/go-profiling/golang-profiling-mem.pdf (renamed from assets/go-profiling/golang-profiling-mem.pdf)bin19221 -> 19221 bytes
-rw-r--r--static/goaccess/goaccess-dash-html.png (renamed from assets/goaccess/goaccess-dash-html.png)bin16129 -> 16129 bytes
-rw-r--r--static/goaccess/goaccess-dash-term.png (renamed from assets/goaccess/goaccess-dash-term.png)bin9188 -> 9188 bytes
-rw-r--r--static/helix-editor/editor.png (renamed from assets/helix-editor/editor.png)bin159442 -> 159442 bytes
-rw-r--r--static/iot-application/iot-app-output.png (renamed from assets/iot-application/iot-app-output.png)bin23767 -> 23767 bytes
-rw-r--r--static/iot-application/iot-rest-example.png (renamed from assets/iot-application/iot-rest-example.png)bin33912 -> 33912 bytes
-rw-r--r--static/iot-application/iot-sqlite-db.png (renamed from assets/iot-application/iot-sqlite-db.png)bin199821 -> 199821 bytes
-rw-r--r--static/iot-application/kcachegrind.png (renamed from assets/iot-application/kcachegrind.png)bin88486 -> 88486 bytes
-rw-r--r--static/iot-application/profiling-viewer.png (renamed from assets/iot-application/profiling-viewer.png)bin173672 -> 173672 bytes
-rw-r--r--static/iot-application/simple-iot-application-overview.svg (renamed from assets/iot-application/simple-iot-application-overview.svg)0
-rw-r--r--static/iot-application/simple-iot-application.zip (renamed from assets/iot-application/simple-iot-application.zip)bin6406 -> 6406 bytes
-rw-r--r--static/iot-application/snakeviz.png (renamed from assets/iot-application/snakeviz.png)bin59601 -> 59601 bytes
-rw-r--r--static/pid1/boxes.mp4 (renamed from assets/pid1/boxes.mp4)bin443830 -> 443830 bytes
-rw-r--r--static/pid1/qemu.log (renamed from assets/pid1/qemu.log)0
-rw-r--r--static/pid1/unikernels.png (renamed from assets/pid1/unikernels.png)bin48567 -> 48567 bytes
-rw-r--r--static/pid1/unikernels.svg128
-rw-r--r--static/profile-bind-error/error.jpg (renamed from assets/profile-bind-error/error.jpg)bin57047 -> 57047 bytes
-rw-r--r--static/python-profiling/kcachegrind.png (renamed from assets/python-profiling/kcachegrind.png)bin88486 -> 88486 bytes
-rw-r--r--static/python-profiling/profiling-viewer.png (renamed from assets/python-profiling/profiling-viewer.png)bin173672 -> 173672 bytes
-rw-r--r--static/python-profiling/snakeviz.png (renamed from assets/python-profiling/snakeviz.png)bin59601 -> 59601 bytes
-rw-r--r--static/sentiment-analysis/.ipynb_checkpoints/TF Test-checkpoint.ipynb (renamed from assets/sentiment-analysis/.ipynb_checkpoints/TF Test-checkpoint.ipynb)0
-rw-r--r--static/sentiment-analysis/.ipynb_checkpoints/sentiment-analysis-checkpoint.ipynb (renamed from assets/sentiment-analysis/.ipynb_checkpoints/sentiment-analysis-checkpoint.ipynb)0
-rw-r--r--static/sentiment-analysis/guardian-sa-title-desc-relationship.png (renamed from assets/sentiment-analysis/guardian-sa-title-desc-relationship.png)bin15404 -> 15404 bytes
-rw-r--r--static/sentiment-analysis/sentiment-analysis.ipynb (renamed from assets/sentiment-analysis/sentiment-analysis.ipynb)0
-rw-r--r--static/simple-pubsub-server/caniuse.png (renamed from assets/simple-pubsub-server/caniuse.png)bin56379 -> 56379 bytes
-rw-r--r--static/simple-pubsub-server/chrome-debugging.png (renamed from assets/simple-pubsub-server/chrome-debugging.png)bin151160 -> 151160 bytes
-rw-r--r--static/simple-pubsub-server/clients.mp4 (renamed from assets/simple-pubsub-server/clients.mp4)bin692780 -> 692780 bytes
-rw-r--r--static/simple-pubsub-server/pubsub-overview.png (renamed from assets/simple-pubsub-server/pubsub-overview.png)bin18471 -> 18471 bytes
-rw-r--r--static/simple-pubsub-server/sse-pubsub-server.zip (renamed from assets/simple-pubsub-server/sse-pubsub-server.zip)bin4158 -> 4158 bytes
-rw-r--r--static/wap/emulator.mp4 (renamed from assets/wap/emulator.mp4)bin892887 -> 892887 bytes
-rw-r--r--static/wap/phones.gif (renamed from assets/wap/phones.gif)bin348891 -> 348891 bytes
-rw-r--r--static/world-clock/enclosure.stl (renamed from assets/world-clock/enclosure.stl)bin1884 -> 1884 bytes
-rw-r--r--static/world-clock/hardware.jpg (renamed from assets/world-clock/hardware.jpg)bin82279 -> 82279 bytes
-rw-r--r--static/world-clock/world-clock.jpg (renamed from assets/world-clock/world-clock.jpg)bin148673 -> 148673 bytes
-rw-r--r--static/yapyap/hello.png (renamed from assets/yapyap/hello.png)bin25962 -> 25962 bytes
-rw-r--r--static/yapyap/pid1.jpg (renamed from assets/yapyap/pid1.jpg)bin394011 -> 394011 bytes
-rwxr-xr-xtemplate/_footer.html7
-rwxr-xr-xtemplate/_includes.html7
-rwxr-xr-xtemplate/_meta.html16
-rwxr-xr-xtemplate/_navigation.html18
-rw-r--r--template/favicon.icobin4286 -> 0 bytes
-rwxr-xr-xtemplate/index.html62
-rw-r--r--template/openring.tmpl34
-rwxr-xr-xtemplate/post.html76
-rw-r--r--template/robots.txt2
-rwxr-xr-xtemplate/script.js11
-rwxr-xr-xtemplate/style.css436
-rwxr-xr-xtemplate/tag.html61
-rw-r--r--themes/.gitkeep0
-rw-r--r--themes/simple/LICENSE20
-rw-r--r--themes/simple/archetypes/default.md2
-rw-r--r--themes/simple/layouts/404.html0
-rw-r--r--themes/simple/layouts/_default/baseof.html11
-rw-r--r--themes/simple/layouts/_default/list.html32
-rw-r--r--themes/simple/layouts/_default/rss.xml27
-rw-r--r--themes/simple/layouts/_default/single.html46
-rw-r--r--themes/simple/layouts/partials/footer.html (renamed from template/_libraries.html)13
-rw-r--r--themes/simple/layouts/partials/head.html175
-rw-r--r--themes/simple/layouts/partials/header.html18
-rw-r--r--themes/simple/static/css/.gitkeep0
-rw-r--r--themes/simple/static/js/.gitkeep0
-rw-r--r--themes/simple/theme.toml16
-rw-r--r--tools/dither-images.sh6
168 files changed, 836 insertions, 2009 deletions
diff --git a/.editorconfig b/.editorconfig
index eebf0a8..50fbc96 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -1,8 +1,12 @@
1# EditorConfig is awesome: https://EditorConfig.org
2
3# top-most EditorConfig file
1root = true 4root = true
2 5
3[*] 6[*]
4indent_style = space 7indent_style = space
5indent_size = 2 8indent_size = 2
9end_of_line = lf
6charset = utf-8 10charset = utf-8
7trim_trailing_whitespace = true 11trim_trailing_whitespace = true
8insert_final_newline = true 12insert_final_newline = true
diff --git a/.gitignore b/.gitignore
index 8bedf24..86c95ef 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,9 +1,13 @@
1node_modules/ 1# Generated files by hugo
2tmp/ 2/public/
3package-lock.json 3/resources/_gen/
4openring-build.html 4/assets/jsconfig.json
5.firebase/ 5hugo_stats.json
6public/ 6
7.DS_Store 7# Executable may be added to repository
8.log 8hugo.exe
9sandbox/ 9hugo.darwin
10hugo.linux
11
12# Temporary lock file while building
13/.hugo_build.lock
diff --git a/.vscode/settings.json b/.vscode/settings.json
index 739b975..d658e7f 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -1,4 +1,8 @@
1{ 1{
2 "editor.formatOnPaste": true, 2 "editor.formatOnPaste": true,
3 "editor.formatOnSave": true 3 "editor.formatOnSave": true,
4 "[xml]": {
5 "editor.formatOnSave": false,
6 "editor.formatOnPaste": false
7 }
4} 8}
diff --git a/Makefile b/Makefile
index 2533f5b..ac5f6ac 100644
--- a/Makefile
+++ b/Makefile
@@ -1,40 +1,7 @@
1MAKEFLAGS := --jobs=2 1dev:
2 hugo server
2 3
3provision: 4deploy:
4 cd ~/Junk \ 5 hugo
5 git clone https://git.sr.ht/~sircmpwn/openring \
6 cd openring \
7 go build \
8 go install
9
10dither:
11 bash tools/dither-images.sh
12
13openring:
14 mkdir -p public
15 openring -l 165 -n 5 -p 1 \
16 -s https://drewdevault.com/feed.xml \
17 -s https://danluu.com/atom.xml \
18 -s https://serokell.io/blog.rss.xml \
19 -s https://cronokirby.com/posts/index.xml \
20 -s https://www.jeffgeerling.com/blog.xml \
21 < template/openring.tmpl \
22 > template/openring-build.html
23
24dev: alternator server
25
26alternator: openring
27 mkdir -p public
28 alternator --watch
29
30build: openring
31 mkdir -p public
32 alternator --build
33 rm template/openring-build.html
34
35server:
36 python3 -m http.server 8000 --directory public
37
38deploy: build
39 rsync -a --delete public/ root@165.22.87.180:/var/www/html/mitjafelicijan.com/ 6 rsync -a --delete public/ root@165.22.87.180:/var/www/html/mitjafelicijan.com/
40 ssh root@165.22.87.180 chown www-data:www-data /var/www/html/mitjafelicijan.com/ -Rf 7 ssh root@165.22.87.180 chown www-data:www-data /var/www/html/mitjafelicijan.com/ -Rf
diff --git a/archetypes/.gitkeep b/archetypes/.gitkeep
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/archetypes/.gitkeep
diff --git a/archetypes/default.md b/archetypes/default.md
new file mode 100644
index 0000000..00e77bd
--- /dev/null
+++ b/archetypes/default.md
@@ -0,0 +1,6 @@
1---
2title: "{{ replace .Name "-" " " | title }}"
3date: {{ .Date }}
4draft: true
5---
6
diff --git a/assets/dfd-rice/layout.svg b/assets/dfd-rice/layout.svg
deleted file mode 100644
index 880cab3..0000000
--- a/assets/dfd-rice/layout.svg
+++ /dev/null
@@ -1,132 +0,0 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!-- Created with Inkscape (http://www.inkscape.org/) -->
3
4<svg
5 width="210mm"
6 height="297mm"
7 viewBox="0 0 210 297"
8 version="1.1"
9 id="svg5"
10 inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)"
11 sodipodi:docname="layout.svg"
12 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
13 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
14 xmlns="http://www.w3.org/2000/svg"
15 xmlns:svg="http://www.w3.org/2000/svg">
16 <sodipodi:namedview
17 id="namedview7"
18 pagecolor="#ffffff"
19 bordercolor="#666666"
20 borderopacity="1.0"
21 inkscape:pageshadow="2"
22 inkscape:pageopacity="0.0"
23 inkscape:pagecheckerboard="0"
24 inkscape:document-units="mm"
25 showgrid="false"
26 inkscape:zoom="0.08"
27 inkscape:cx="1143.75"
28 inkscape:cy="1893.75"
29 inkscape:window-width="2305"
30 inkscape:window-height="752"
31 inkscape:window-x="873"
32 inkscape:window-y="136"
33 inkscape:window-maximized="0"
34 inkscape:current-layer="layer1" />
35 <defs
36 id="defs2" />
37 <g
38 inkscape:label="Layer 1"
39 inkscape:groupmode="layer"
40 id="layer1">
41 <g
42 id="g2012"
43 inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/assets/dfd-rice/layout.png"
44 inkscape:export-xdpi="6.6072011"
45 inkscape:export-ydpi="6.6072011">
46 <rect
47 style="fill:#e6e6e6;stroke:#303030;stroke-width:0.447874;stroke-linecap:round;stroke-linejoin:miter;paint-order:stroke fill markers"
48 id="rect1454"
49 width="1360.1339"
50 height="1074.3162"
51 x="-360.50458"
52 y="-265.69751"
53 ry="0" />
54 <rect
55 style="fill:#e6e6e6;stroke:#303030;stroke-width:0.261189;stroke-linecap:round;stroke-linejoin:miter;paint-order:stroke fill markers"
56 id="rect1456"
57 width="1058.4567"
58 height="469.50305"
59 x="1025.9943"
60 y="-265.79086"
61 ry="0" />
62 <text
63 xml:space="preserve"
64 style="font-style:normal;font-weight:normal;font-size:51.606px;line-height:1.25;font-family:sans-serif;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:1.29015"
65 x="1407.4224"
66 y="-12.228849"
67 id="text7667-3"><tspan
68 sodipodi:role="line"
69 id="tspan7665-6"
70 style="font-weight:bold;stroke-width:1.29015;fill:#4d4d4d"
71 x="1407.4224"
72 y="-12.228849">TERMINAL</tspan></text>
73 <rect
74 style="fill:#e6e6e6;stroke:#303030;stroke-width:0.289748;stroke-linecap:round;stroke-linejoin:miter;paint-order:stroke fill markers"
75 id="rect1458"
76 width="1058.4564"
77 height="577.78894"
78 x="1028.7416"
79 y="230.8085"
80 ry="0" />
81 <rect
82 style="fill:#e6e6e6;stroke:#303030;stroke-width:0.447874;stroke-linecap:round;stroke-linejoin:miter;paint-order:stroke fill markers"
83 id="rect135"
84 width="1360.1339"
85 height="1074.3162"
86 x="-1747.0968"
87 y="-265.69751"
88 ry="0" />
89 <text
90 xml:space="preserve"
91 style="font-style:normal;font-weight:normal;font-size:51.606px;line-height:1.25;font-family:sans-serif;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:1.29015"
92 x="-1214.8931"
93 y="290.24585"
94 id="text3280"><tspan
95 sodipodi:role="line"
96 id="tspan3278"
97 style="font-weight:bold;stroke-width:1.29015;fill:#4d4d4d"
98 x="-1214.8931"
99 y="290.24585">BROWSER</tspan></text>
100 <rect
101 style="fill:none;stroke:none;stroke-width:10;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
102 id="rect31"
103 width="3834.2903"
104 height="1074.2903"
105 x="-1747.0922"
106 y="-265.69287"
107 ry="0" />
108 <text
109 xml:space="preserve"
110 style="font-style:normal;font-weight:normal;font-size:51.606px;line-height:1.25;font-family:sans-serif;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:1.29015"
111 x="121.84438"
112 y="290.24585"
113 id="text7667"><tspan
114 sodipodi:role="line"
115 id="tspan7665"
116 style="font-weight:bold;stroke-width:1.29015;fill:#4d4d4d"
117 x="121.84438"
118 y="290.24585">CODE EDITOR</tspan></text>
119 <text
120 xml:space="preserve"
121 style="font-style:normal;font-weight:normal;font-size:51.606px;line-height:1.25;font-family:sans-serif;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:1.29015"
122 x="1410.1696"
123 y="538.51349"
124 id="text12264"><tspan
125 sodipodi:role="line"
126 id="tspan12262"
127 style="font-weight:bold;stroke-width:1.29015;fill:#4d4d4d"
128 x="1410.1696"
129 y="538.51349">TERMINAL</tspan></text>
130 </g>
131 </g>
132</svg>
diff --git a/assets/pid1/unikernels.svg b/assets/pid1/unikernels.svg
deleted file mode 100644
index 77d1547..0000000
--- a/assets/pid1/unikernels.svg
+++ /dev/null
@@ -1,578 +0,0 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!-- Created with Inkscape (http://www.inkscape.org/) -->
3
4<svg
5 width="210mm"
6 height="297mm"
7 viewBox="0 0 210 297"
8 version="1.1"
9 id="svg5"
10 inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)"
11 sodipodi:docname="unikernels.svg"
12 inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/assets/pid1/unikernels.png"
13 inkscape:export-xdpi="127.98862"
14 inkscape:export-ydpi="127.98862"
15 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
16 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
17 xmlns="http://www.w3.org/2000/svg"
18 xmlns:svg="http://www.w3.org/2000/svg">
19 <sodipodi:namedview
20 id="namedview7"
21 pagecolor="#ffffff"
22 bordercolor="#666666"
23 borderopacity="1.0"
24 inkscape:pageshadow="2"
25 inkscape:pageopacity="0.0"
26 inkscape:pagecheckerboard="0"
27 inkscape:document-units="mm"
28 showgrid="false"
29 inkscape:zoom="1.4948513"
30 inkscape:cx="431.48104"
31 inkscape:cy="473.6257"
32 inkscape:window-width="1887"
33 inkscape:window-height="913"
34 inkscape:window-x="1859"
35 inkscape:window-y="48"
36 inkscape:window-maximized="0"
37 inkscape:current-layer="layer1"
38 showguides="true"
39 inkscape:guide-bbox="true" />
40 <defs
41 id="defs2" />
42 <g
43 inkscape:label="Layer 1"
44 inkscape:groupmode="layer"
45 id="layer1">
46 <g
47 id="g98495"
48 inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/assets/pid1/unikernels.png"
49 inkscape:export-xdpi="127.98862"
50 inkscape:export-ydpi="127.98862">
51 <rect
52 style="fill:#ececec;stroke:none;stroke-width:0.318966;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
53 id="rect18248"
54 width="65.511665"
55 height="75.571449"
56 x="5.6951494"
57 y="75.506912"
58 inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/assets/pid1/unikernels.png"
59 inkscape:export-xdpi="127.98862"
60 inkscape:export-ydpi="127.98862" />
61 <rect
62 style="fill:#ececec;stroke:none;stroke-width:0.318966;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
63 id="rect18418"
64 width="65.511665"
65 height="75.571449"
66 x="72.166878"
67 y="75.506912"
68 inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/assets/pid1/unikernels.png"
69 inkscape:export-xdpi="127.98862"
70 inkscape:export-ydpi="127.98862" />
71 <rect
72 style="fill:#ececec;stroke:none;stroke-width:0.318966;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
73 id="rect18420"
74 width="65.511665"
75 height="75.571449"
76 x="138.63863"
77 y="75.506912"
78 inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/assets/pid1/unikernels.png"
79 inkscape:export-xdpi="127.98862"
80 inkscape:export-ydpi="127.98862" />
81 <text
82 xml:space="preserve"
83 style="font-style:normal;font-variant:normal;font-weight:900;font-stretch:normal;font-size:2.82222px;line-height:1.25;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Heavy';fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
84 x="25.735832"
85 y="144.60236"
86 id="text18439"
87 inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/assets/pid1/unikernels.png"
88 inkscape:export-xdpi="127.98862"
89 inkscape:export-ydpi="127.98862"><tspan
90 sodipodi:role="line"
91 id="tspan18437"
92 style="font-style:normal;font-variant:normal;font-weight:800;font-stretch:normal;font-size:2.82222px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Ultra-Bold';fill:#000000;stroke-width:0.264583"
93 x="25.735832"
94 y="144.60236">VIRTUAL MACHINE</tspan></text>
95 <g
96 id="g50691"
97 transform="translate(0,-101.60001)"
98 inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/assets/pid1/unikernels.png"
99 inkscape:export-xdpi="127.98862"
100 inkscape:export-ydpi="127.98862">
101 <rect
102 style="fill:#f9f9f9;stroke:none;stroke-width:0.429153;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
103 id="rect38097-3"
104 width="50.57568"
105 height="8.4333"
106 x="13.294504"
107 y="213.63496"
108 ry="1.5" />
109 <text
110 xml:space="preserve"
111 style="font-style:normal;font-variant:normal;font-weight:900;font-stretch:normal;font-size:2.46944px;line-height:1.25;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Heavy';fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583"
112 x="24.263063"
113 y="218.54855"
114 id="text32261"><tspan
115 sodipodi:role="line"
116 id="tspan32259"
117 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.46944px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';fill:#4d4d4d;stroke-width:0.264583"
118 x="24.263063"
119 y="218.54855">HOST OS / HYPERVISOR</tspan></text>
120 </g>
121 <rect
122 style="fill:#f9f9f9;stroke:none;stroke-width:0.499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
123 id="rect38097"
124 width="22.000685"
125 height="26.315866"
126 x="13.294504"
127 y="184.14406"
128 ry="1.5"
129 transform="translate(0,-102.12917)" />
130 <text
131 xml:space="preserve"
132 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:0.85;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583"
133 x="24.336025"
134 y="204.21999"
135 id="text38435"
136 transform="translate(0,-102.12917)"><tspan
137 sodipodi:role="line"
138 id="tspan38433"
139 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583"
140 x="24.336025"
141 y="204.48907">VIRTUAL</tspan><tspan
142 sodipodi:role="line"
143 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583"
144 x="24.336025"
145 y="206.28824"
146 id="tspan38945">MACHINE</tspan></text>
147 <text
148 xml:space="preserve"
149 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:0.85;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583"
150 x="24.336025"
151 y="198.19913"
152 id="text41165"
153 transform="translate(0,-102.12917)"><tspan
154 sodipodi:role="line"
155 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583"
156 x="24.336025"
157 y="198.19913"
158 id="tspan41163">GUEST OS</tspan></text>
159 <text
160 xml:space="preserve"
161 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:0.85;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583"
162 x="24.336025"
163 y="189.40337"
164 id="text42587"
165 transform="translate(0,-102.12917)"><tspan
166 sodipodi:role="line"
167 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583"
168 x="24.336025"
169 y="189.67245"
170 id="tspan42585">TARGET</tspan><tspan
171 sodipodi:role="line"
172 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583"
173 x="24.336025"
174 y="191.47162"
175 id="tspan42611">SOFTWARE</tspan></text>
176 <g
177 id="g50696"
178 transform="translate(0,-99.483339)"
179 inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/assets/pid1/unikernels.png"
180 inkscape:export-xdpi="127.98862"
181 inkscape:export-ydpi="127.98862">
182 <rect
183 style="fill:#f9f9f9;stroke:none;stroke-width:0.429153;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
184 id="rect48544"
185 width="50.57568"
186 height="8.4333"
187 x="13.294504"
188 y="223.15991"
189 ry="1.5" />
190 <text
191 xml:space="preserve"
192 style="font-style:normal;font-variant:normal;font-weight:900;font-stretch:normal;font-size:2.46944px;line-height:1.25;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Heavy';fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583"
193 x="31.535746"
194 y="228.24654"
195 id="text47169"><tspan
196 sodipodi:role="line"
197 id="tspan47167"
198 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.46944px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';fill:#4d4d4d;stroke-width:0.264583"
199 x="31.535746"
200 y="228.24654">HARDWARE</tspan></text>
201 </g>
202 <g
203 id="g48202"
204 transform="translate(28.574999,-102.12917)"
205 inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/assets/pid1/unikernels.png"
206 inkscape:export-xdpi="127.98862"
207 inkscape:export-ydpi="127.98862">
208 <rect
209 style="fill:#f9f9f9;stroke:none;stroke-width:0.499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
210 id="rect48184"
211 width="22.000685"
212 height="26.315866"
213 x="13.294504"
214 y="184.14406"
215 ry="1.5" />
216 <text
217 xml:space="preserve"
218 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:0.85;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583"
219 x="24.336025"
220 y="204.21999"
221 id="text48190"><tspan
222 sodipodi:role="line"
223 id="tspan48186"
224 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583"
225 x="24.336025"
226 y="204.48907">VIRTUAL</tspan><tspan
227 sodipodi:role="line"
228 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583"
229 x="24.336025"
230 y="206.28824"
231 id="tspan48188">MACHINE</tspan></text>
232 <text
233 xml:space="preserve"
234 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:0.85;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583"
235 x="24.336025"
236 y="198.19913"
237 id="text48194"><tspan
238 sodipodi:role="line"
239 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583"
240 x="24.336025"
241 y="198.19913"
242 id="tspan48192">GUEST OS</tspan></text>
243 <text
244 xml:space="preserve"
245 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:0.85;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583"
246 x="24.336025"
247 y="189.40337"
248 id="text48200"><tspan
249 sodipodi:role="line"
250 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583"
251 x="24.336025"
252 y="189.67245"
253 id="tspan48196">TARGET</tspan><tspan
254 sodipodi:role="line"
255 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583"
256 x="24.336025"
257 y="191.47162"
258 id="tspan48198">SOFTWARE</tspan></text>
259 </g>
260 <text
261 xml:space="preserve"
262 style="font-style:normal;font-variant:normal;font-weight:900;font-stretch:normal;font-size:2.82222px;line-height:1.25;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Heavy';fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
263 x="95.948242"
264 y="144.60236"
265 id="text51110"
266 inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/assets/pid1/unikernels.png"
267 inkscape:export-xdpi="127.98862"
268 inkscape:export-ydpi="127.98862"><tspan
269 sodipodi:role="line"
270 id="tspan51108"
271 style="font-style:normal;font-variant:normal;font-weight:800;font-stretch:normal;font-size:2.82222px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Ultra-Bold';fill:#000000;stroke-width:0.264583"
272 x="95.948242"
273 y="144.60236">CONTAINERS</tspan></text>
274 <g
275 id="g51118"
276 transform="translate(66.675002,-101.60001)"
277 inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/assets/pid1/unikernels.png"
278 inkscape:export-xdpi="127.98862"
279 inkscape:export-ydpi="127.98862">
280 <rect
281 style="fill:#f9f9f9;stroke:none;stroke-width:0.429153;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
282 id="rect51112"
283 width="50.57568"
284 height="8.4333"
285 x="13.294504"
286 y="213.63496"
287 ry="1.5" />
288 <text
289 xml:space="preserve"
290 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.46944px;line-height:1.25;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583"
291 x="33.144272"
292 y="218.54855"
293 id="text51116"><tspan
294 sodipodi:role="line"
295 id="tspan51114"
296 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.46944px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';fill:#4d4d4d;stroke-width:0.264583"
297 x="33.144272"
298 y="218.54855">HOST OS</tspan></text>
299 </g>
300 <g
301 id="g51138"
302 transform="translate(66.675002,-102.12917)"
303 inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/assets/pid1/unikernels.png"
304 inkscape:export-xdpi="127.98862"
305 inkscape:export-ydpi="127.98862">
306 <rect
307 style="fill:#f9f9f9;stroke:none;stroke-width:0.499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
308 id="rect51120"
309 width="22.000685"
310 height="26.315866"
311 x="13.294504"
312 y="184.14406"
313 ry="1.5" />
314 <text
315 xml:space="preserve"
316 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:0.85;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583"
317 x="24.336025"
318 y="206.33662"
319 id="text51126"><tspan
320 sodipodi:role="line"
321 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583"
322 x="24.336025"
323 y="206.33662"
324 id="tspan51124">CONTAINER</tspan></text>
325 <text
326 xml:space="preserve"
327 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:0.85;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583"
328 x="24.336025"
329 y="198.19913"
330 id="text51130"><tspan
331 sodipodi:role="line"
332 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583"
333 x="24.336025"
334 y="198.46822"
335 id="tspan51128">PROGRAMS &amp;</tspan><tspan
336 sodipodi:role="line"
337 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583"
338 x="24.336025"
339 y="200.26738"
340 id="tspan56912">LIBRARIES</tspan></text>
341 <text
342 xml:space="preserve"
343 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:0.85;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583"
344 x="24.336025"
345 y="189.40337"
346 id="text51136"><tspan
347 sodipodi:role="line"
348 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583"
349 x="24.336025"
350 y="189.67245"
351 id="tspan51132">TARGET</tspan><tspan
352 sodipodi:role="line"
353 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583"
354 x="24.336025"
355 y="191.47162"
356 id="tspan51134">SOFTWARE</tspan></text>
357 </g>
358 <g
359 id="g51146"
360 transform="translate(66.675002,-99.483339)"
361 inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/assets/pid1/unikernels.png"
362 inkscape:export-xdpi="127.98862"
363 inkscape:export-ydpi="127.98862">
364 <rect
365 style="fill:#f9f9f9;stroke:none;stroke-width:0.429153;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
366 id="rect51140"
367 width="50.57568"
368 height="8.4333"
369 x="13.294504"
370 y="223.15991"
371 ry="1.5" />
372 <text
373 xml:space="preserve"
374 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.46944px;line-height:1.25;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583"
375 x="31.535746"
376 y="228.24654"
377 id="text51144"><tspan
378 sodipodi:role="line"
379 id="tspan51142"
380 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.46944px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';fill:#4d4d4d;stroke-width:0.264583"
381 x="31.535746"
382 y="228.24654">HARDWARE</tspan></text>
383 </g>
384 <g
385 id="g51166"
386 transform="translate(95.250005,-102.12917)"
387 inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/assets/pid1/unikernels.png"
388 inkscape:export-xdpi="127.98862"
389 inkscape:export-ydpi="127.98862">
390 <rect
391 style="fill:#f9f9f9;stroke:none;stroke-width:0.499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
392 id="rect51148"
393 width="22.000685"
394 height="26.315866"
395 x="13.294504"
396 y="184.14406"
397 ry="1.5" />
398 <text
399 xml:space="preserve"
400 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:0.85;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583"
401 x="24.336025"
402 y="206.33662"
403 id="text51154"><tspan
404 sodipodi:role="line"
405 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583"
406 x="24.336025"
407 y="206.33662"
408 id="tspan51152">CONTAINER</tspan></text>
409 <text
410 xml:space="preserve"
411 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:0.85;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583"
412 x="24.336025"
413 y="198.19913"
414 id="text51158"><tspan
415 sodipodi:role="line"
416 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583"
417 x="24.336025"
418 y="198.46822"
419 id="tspan51156">PROGRAMS &amp;</tspan><tspan
420 sodipodi:role="line"
421 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583"
422 x="24.336025"
423 y="200.26738"
424 id="tspan64780">LIBRARIES</tspan></text>
425 <text
426 xml:space="preserve"
427 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:0.85;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583"
428 x="24.336025"
429 y="189.40337"
430 id="text51164"><tspan
431 sodipodi:role="line"
432 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583"
433 x="24.336025"
434 y="189.67245"
435 id="tspan51160">TARGET</tspan><tspan
436 sodipodi:role="line"
437 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583"
438 x="24.336025"
439 y="191.47162"
440 id="tspan51162">SOFTWARE</tspan></text>
441 </g>
442 <text
443 xml:space="preserve"
444 style="font-style:normal;font-variant:normal;font-weight:900;font-stretch:normal;font-size:2.82222px;line-height:1.25;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Heavy';fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
445 x="162.66873"
446 y="144.60236"
447 id="text74212"
448 inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/assets/pid1/unikernels.png"
449 inkscape:export-xdpi="127.98862"
450 inkscape:export-ydpi="127.98862"><tspan
451 sodipodi:role="line"
452 id="tspan74210"
453 style="font-style:normal;font-variant:normal;font-weight:800;font-stretch:normal;font-size:2.82222px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Ultra-Bold';fill:#000000;stroke-width:0.264583"
454 x="162.66873"
455 y="144.60236">UNIKERNELS</tspan></text>
456 <g
457 id="g74220"
458 transform="translate(132.82087,-101.60001)"
459 inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/assets/pid1/unikernels.png"
460 inkscape:export-xdpi="127.98862"
461 inkscape:export-ydpi="127.98862">
462 <rect
463 style="fill:#f9f9f9;stroke:none;stroke-width:0.429153;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
464 id="rect74214"
465 width="50.57568"
466 height="8.4333"
467 x="13.294504"
468 y="213.63496"
469 ry="1.5" />
470 <text
471 xml:space="preserve"
472 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.46944px;line-height:1.25;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583"
473 x="30.66217"
474 y="218.54855"
475 id="text74218"><tspan
476 sodipodi:role="line"
477 id="tspan74216"
478 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.46944px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';fill:#4d4d4d;stroke-width:0.264583"
479 x="30.66217"
480 y="218.54855">HYPERVISOR</tspan></text>
481 </g>
482 <g
483 id="g74240"
484 transform="translate(132.82087,-102.12917)"
485 inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/assets/pid1/unikernels.png"
486 inkscape:export-xdpi="127.98862"
487 inkscape:export-ydpi="127.98862">
488 <rect
489 style="fill:#f9f9f9;stroke:none;stroke-width:0.377825;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
490 id="rect74222"
491 width="22.000685"
492 height="15.026576"
493 x="13.294504"
494 y="195.43335"
495 ry="0.85651237" />
496 <text
497 xml:space="preserve"
498 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:0.85;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583"
499 x="24.336025"
500 y="202.66647"
501 id="text74232"><tspan
502 sodipodi:role="line"
503 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583"
504 x="24.336025"
505 y="202.93556"
506 id="tspan74228">UNIKERNEL &amp;</tspan><tspan
507 sodipodi:role="line"
508 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583"
509 x="24.336025"
510 y="204.73473"
511 id="tspan74230">APPLICATION</tspan></text>
512 </g>
513 <g
514 id="g74248"
515 transform="translate(132.82087,-99.483339)"
516 inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/assets/pid1/unikernels.png"
517 inkscape:export-xdpi="127.98862"
518 inkscape:export-ydpi="127.98862">
519 <rect
520 style="fill:#f9f9f9;stroke:none;stroke-width:0.429153;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
521 id="rect74242"
522 width="50.57568"
523 height="8.4333"
524 x="13.294504"
525 y="223.15991"
526 ry="1.5" />
527 <text
528 xml:space="preserve"
529 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.46944px;line-height:1.25;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583"
530 x="31.535746"
531 y="228.24654"
532 id="text74246"><tspan
533 sodipodi:role="line"
534 id="tspan74244"
535 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.46944px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';fill:#4d4d4d;stroke-width:0.264583"
536 x="31.535746"
537 y="228.24654">HARDWARE</tspan></text>
538 </g>
539 <g
540 id="g85408"
541 transform="translate(161.34783,-102.25244)"
542 inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/assets/pid1/unikernels.png"
543 inkscape:export-xdpi="127.98862"
544 inkscape:export-ydpi="127.98862">
545 <rect
546 style="fill:#f9f9f9;stroke:none;stroke-width:0.377825;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
547 id="rect85400"
548 width="22.000685"
549 height="15.026576"
550 x="13.294504"
551 y="195.43335"
552 ry="0.85651237" />
553 <text
554 xml:space="preserve"
555 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:0.85;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583"
556 x="24.336025"
557 y="202.66647"
558 id="text85406"><tspan
559 sodipodi:role="line"
560 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583"
561 x="24.336025"
562 y="202.93556"
563 id="tspan85402">UNIKERNEL &amp;</tspan><tspan
564 sodipodi:role="line"
565 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583"
566 x="24.336025"
567 y="204.73473"
568 id="tspan85404">APPLICATION</tspan></text>
569 </g>
570 </g>
571 <g
572 id="g48182"
573 transform="translate(0,-102.12917)"
574 inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/assets/pid1/unikernels.png"
575 inkscape:export-xdpi="127.98862"
576 inkscape:export-ydpi="127.98862" />
577 </g>
578</svg>
diff --git a/config.ini b/config.ini
deleted file mode 100755
index 2ba799a..0000000
--- a/config.ini
+++ /dev/null
@@ -1,21 +0,0 @@
1[server]
2# port used by HTTP server
3port = 8080
4
5[content]
6# title displayed on index page, otherwise post title is used
7title = Mitja Felicijan
8
9# descriptions displayed on index page, otherwise post description is used
10description = You do not learn by relaxing. You learn by violently assaulting your problem until it surrenders its mysteries to you.
11
12[rss]
13
14# domain name for xml feed
15domain = https://mitjafelicijan.com
16
17# author name
18author = Mitja Felicijan
19
20# author email
21email = m@mitjafelicijan.com
diff --git a/config.toml b/config.toml
new file mode 100644
index 0000000..7cb9aa2
--- /dev/null
+++ b/config.toml
@@ -0,0 +1,31 @@
1baseURL = 'https://mitjafelicijan.com/'
2languageCode = 'en-us'
3title = 'Mitja Felicijan'
4
5# Theme selction.
6theme = 'simple'
7
8# Makes url's have '.html' at the end.
9uglyurls = true
10
11[params]
12 description = 'You do not learn by relaxing. You learn by violently assaulting your problem until it surrenders its mysteries to you.'
13
14[permalinks]
15 posts = ':title'
16 # pages = ':title'
17
18[author]
19 name = 'Mitja Felicijan'
20
21[markup]
22 [markup.tableOfContents]
23 endLevel = 3
24 ordered = false
25 startLevel = 2
26
27 [markup.goldmark.renderer]
28 unsafe = true
29
30 [markup.highlight]
31 style = 'github'
diff --git a/content/.gitkeep b/content/.gitkeep
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/content/.gitkeep
diff --git a/posts/books.md b/content/pages/books.md
index 2a05dab..30f6ba6 100644
--- a/posts/books.md
+++ b/content/pages/books.md
@@ -1,10 +1,8 @@
1--- 1---
2Title: Books I've read so far 2title: Books I've read so far
3Description: Books I've read so far 3date: 2022-08-27
4Slug: books 4url: books.html
5Listing: false 5draft: false
6Created: ""
7Tags: []
8--- 6---
9 7
10I buy all the books I read from [Book Depository](https://www.bookdepository.com/). I don't borrow them, and I don't like e-books. I, however, own an e-reader, which I mostly use for reading articles. Tried some audiobooks in the past, and they can be hit-and-miss, so I try to stay away from them. 8I buy all the books I read from [Book Depository](https://www.bookdepository.com/). I don't borrow them, and I don't like e-books. I, however, own an e-reader, which I mostly use for reading articles. Tried some audiobooks in the past, and they can be hit-and-miss, so I try to stay away from them.
diff --git a/posts/curriculum-vitae.md b/content/pages/curriculum-vitae.md
index 7af1818..a4ba9e8 100644
--- a/posts/curriculum-vitae.md
+++ b/content/pages/curriculum-vitae.md
@@ -1,10 +1,8 @@
1--- 1---
2Title: Curriculum Vitae 2title: Curriculum Vitae
3Description: Curriculum Vitae 3date: 2022-08-27
4Slug: curriculum-vitae 4url: curriculum-vitae.html
5Listing: false 5draft: false
6Created: ""
7Tags: []
8--- 6---
9 7
10<style> 8<style>
@@ -18,7 +16,7 @@ Tags: []
18 16
19<div class="cv-picture"> 17<div class="cv-picture">
20 18
21![Picture](/assets/cv/avatar.gif) 19![Picture](/cv/avatar.gif)
22 20
23</div> 21</div>
24 22
diff --git a/posts/2011-01-13-most-likely-to-succeed-in-year-of-2011.md b/content/posts/2011-01-13-most-likely-to-succeed-in-year-of-2011.md
index df54f63..fdd0075 100755
--- a/posts/2011-01-13-most-likely-to-succeed-in-year-of-2011.md
+++ b/content/posts/2011-01-13-most-likely-to-succeed-in-year-of-2011.md
@@ -1,10 +1,8 @@
1--- 1---
2Title: Most likely to succeed in the year of 2011 2title: Most likely to succeed in the year of 2011
3Description: Most likely to succeed in the year of 2011 3url: most-likely-to-succeed-in-year-of-2011.html
4Slug: most-likely-to-succeed-in-year-of-2011 4date: 2011-01-13
5Listing: true 5draft: false
6Created: 2011-01-13
7Tags: []
8--- 6---
9 7
10The year of 2010 was definitely the year of Geo-location. The market responded beautifully and lots of very cool services were launched. We all have to thank the mobile market for such extensive adoption. With new generations of mobile phones that are not only buffed with high-tech hardware but are also affordable. We can now manage tasks that were not so long time ago, almost Star Trek’ish. And all this had and has great influence on the destination to which we are going now. 8The year of 2010 was definitely the year of Geo-location. The market responded beautifully and lots of very cool services were launched. We all have to thank the mobile market for such extensive adoption. With new generations of mobile phones that are not only buffed with high-tech hardware but are also affordable. We can now manage tasks that were not so long time ago, almost Star Trek’ish. And all this had and has great influence on the destination to which we are going now.
diff --git a/posts/2012-03-09-led-technology-not-so-eco.md b/content/posts/2012-03-09-led-technology-not-so-eco.md
index 8ef8c2c..514b1c3 100755
--- a/posts/2012-03-09-led-technology-not-so-eco.md
+++ b/content/posts/2012-03-09-led-technology-not-so-eco.md
@@ -1,10 +1,8 @@
1--- 1---
2Title: LED technology might not be as eco-friendly as you think 2title: LED technology might not be as eco-friendly as you think
3Description: LED technology might not be as eco-friendly as you think 3url: led-technology-not-so-eco.html
4Slug: led-technology-not-so-eco 4date: 2012-03-09
5Listing: true 5draft: false
6Created: 2012-03-09
7Tags: []
8--- 6---
9 7
10There is a lot of talk about LED technology. It is beginning to infiltrate industry at a fast rate, and it’s a challenge for designers and also engineers. I wondered when a weakness will be revealed. Then I stomped on an article talking about harm in using LED technology. It looks like this magical technology is not so magical and eco-friendly. 8There is a lot of talk about LED technology. It is beginning to infiltrate industry at a fast rate, and it’s a challenge for designers and also engineers. I wondered when a weakness will be revealed. Then I stomped on an article talking about harm in using LED technology. It looks like this magical technology is not so magical and eco-friendly.
diff --git a/posts/2013-10-24-wireless-sensor-networks.md b/content/posts/2013-10-24-wireless-sensor-networks.md
index feb2236..e8948fb 100755
--- a/posts/2013-10-24-wireless-sensor-networks.md
+++ b/content/posts/2013-10-24-wireless-sensor-networks.md
@@ -1,10 +1,8 @@
1--- 1---
2Title: Wireless sensor networks 2title: Wireless sensor networks
3Description: Wireless sensor networks 3url: wireless-sensor-networks.html
4Slug: wireless-sensor-networks 4date: 2013-10-24
5Listing: true 5draft: false
6Created: 2013-10-24
7Tags: []
8--- 6---
9 7
10Zigbee networks have this wonderful capability to self-heal, which means they can reorder connections between them if one of them is inoperable. This works our of the box when you deploy them. But you have to have in mind that achieving this is not as easy as you would think. None of it is plug&play. So to make your life a bit easier, here are some pointers which, I hope, will help you. 8Zigbee networks have this wonderful capability to self-heal, which means they can reorder connections between them if one of them is inoperable. This works our of the box when you deploy them. But you have to have in mind that achieving this is not as easy as you would think. None of it is plug&play. So to make your life a bit easier, here are some pointers which, I hope, will help you.
diff --git a/posts/2015-11-10-software-development-pitfalls.md b/content/posts/2015-11-10-software-development-pitfalls.md
index d9e4266..c5d243a 100755
--- a/posts/2015-11-10-software-development-pitfalls.md
+++ b/content/posts/2015-11-10-software-development-pitfalls.md
@@ -1,10 +1,8 @@
1--- 1---
2Title: Software development and my favorite pitfalls 2title: Software development and my favorite pitfalls
3Description: Software development and my favorite pitfalls 3url: software-development-pitfalls.html
4Slug: software-development-pitfalls 4date: 2015-11-10
5Listing: true 5draft: false
6Created: 2015-11-10
7Tags: []
8--- 6---
9 7
10**Table of contents** 8**Table of contents**
diff --git a/posts/2017-03-07-golang-profiling-simplified.md b/content/posts/2017-03-07-golang-profiling-simplified.md
index b419918..d784dcc 100644
--- a/posts/2017-03-07-golang-profiling-simplified.md
+++ b/content/posts/2017-03-07-golang-profiling-simplified.md
@@ -1,10 +1,8 @@
1--- 1---
2Title: Golang profiling simplified 2title: Golang profiling simplified
3Description: Golang profiling simplified 3url: golang-profiling-simplified.html
4Slug: golang-profiling-simplified 4date: 2017-03-07
5Listing: true 5draft: false
6Created: 2017-03-07
7Tags: []
8--- 6---
9 7
10Many posts have been written regarding profiling in Golang and I haven’t found proper tutorial regarding this. Almost all of them are missing some part of important information and it gets pretty frustrating when you have a deadline and are not finding simple distilled solution. 8Many posts have been written regarding profiling in Golang and I haven’t found proper tutorial regarding this. Almost all of them are missing some part of important information and it gets pretty frustrating when you have a deadline and are not finding simple distilled solution.
@@ -109,5 +107,5 @@ go tool pprof -pdf ./cpu cpu.pprof > cpu.pdf
109 107
110This will generate PDF document with visualized profile. 108This will generate PDF document with visualized profile.
111 109
112- [Memory PDF profile example](/assets/go-profiling/golang-profiling-mem.pdf) 110- [Memory PDF profile example](/go-profiling/golang-profiling-mem.pdf)
113- [CPU PDF profile example](/assets/go-profiling/golang-profiling-cpu.pdf) 111- [CPU PDF profile example](/go-profiling/golang-profiling-cpu.pdf)
diff --git a/posts/2017-04-17-what-i-ve-learned-developing-ad-server.md b/content/posts/2017-04-17-what-i-ve-learned-developing-ad-server.md
index 99be1e9..6fca4ce 100644
--- a/posts/2017-04-17-what-i-ve-learned-developing-ad-server.md
+++ b/content/posts/2017-04-17-what-i-ve-learned-developing-ad-server.md
@@ -1,10 +1,8 @@
1--- 1---
2Title: What I've learned developing ad server 2title: What I've learned developing ad server
3Description: Lessons I learned developing contextual ad server 3url: what-i-ve-learned-developing-ad-server.html
4Slug: what-i-ve-learned-developing-ad-server 4date: 2017-04-17
5Listing: true 5draft: false
6Created: 2017-04-17
7Tags: []
8--- 6---
9 7
10For the past year and half I have been developing native advertising server that contextually matches ads and displays them in different template forms on variety of websites. This project grew from serving thousands of ads per day to millions. 8For the past year and half I have been developing native advertising server that contextually matches ads and displays them in different template forms on variety of websites. This project grew from serving thousands of ads per day to millions.
diff --git a/posts/2017-04-21-profiling-python-web-applications-with-visual-tools.md b/content/posts/2017-04-21-profiling-python-web-applications-with-visual-tools.md
index f2d4190..3fe8a9d 100644
--- a/posts/2017-04-21-profiling-python-web-applications-with-visual-tools.md
+++ b/content/posts/2017-04-21-profiling-python-web-applications-with-visual-tools.md
@@ -1,10 +1,8 @@
1--- 1---
2Title: Profiling Python web applications with visual tools 2title: Profiling Python web applications with visual tools
3Description: Missing link when debugging and profiling python web application 3url: profiling-python-web-applications-with-visual-tools.html
4Slug: profiling-python-web-applications-with-visual-tools 4date: 2017-04-21
5Listing: true 5draft: false
6Created: 2017-04-21
7Tags: []
8--- 6---
9 7
10I have been profiling my software with KCachegrind for a long time now and I was missing this option when I am developing API's or other web services. I always knew that this is possible but never really took the time and dive into it. 8I have been profiling my software with KCachegrind for a long time now and I was missing this option when I am developing API's or other web services. I always knew that this is possible but never really took the time and dive into it.
@@ -18,7 +16,7 @@ Before we begin there are some requirements. We will need to:
18 16
19If you are using MacOS you should check out [Profiling Viewer](http://www.profilingviewer.com/) or [MacCallGrind](http://www.maccallgrind.com/). 17If you are using MacOS you should check out [Profiling Viewer](http://www.profilingviewer.com/) or [MacCallGrind](http://www.maccallgrind.com/).
20 18
21![KCachegrind](/assets/python-profiling/kcachegrind.png) 19![KCachegrind](/python-profiling/kcachegrind.png)
22 20
23We will be dividing this post into two main categories: 21We will be dividing this post into two main categories:
24 22
@@ -137,7 +135,7 @@ $ pyprof2calltree -i awesome_random_number.prof
137 135
138This file can be opened with visualizing tools listed above. In this case we will be using Profilling Viewer under MacOS. You can open image in new tab. As you can see from this example there is hierarchy of execution order of your code. 136This file can be opened with visualizing tools listed above. In this case we will be using Profilling Viewer under MacOS. You can open image in new tab. As you can see from this example there is hierarchy of execution order of your code.
139 137
140![Profilling Viewer](/assets/python-profiling/profiling-viewer.png) 138![Profilling Viewer](/python-profiling/profiling-viewer.png)
141 139
142> Make sure you convert output of the cProfile output every time you want to refresh and take a look at your possible optimizations because cProfile updates .prof file every time browser hits the function. 140> Make sure you convert output of the cProfile output every time you want to refresh and take a look at your possible optimizations because cProfile updates .prof file every time browser hits the function.
143 141
@@ -160,7 +158,7 @@ $ snakeviz awesome_random_number.prof
160# shows visualized profile 158# shows visualized profile
161``` 159```
162 160
163![SnakeViz](/assets/python-profiling/snakeviz.png) 161![SnakeViz](/python-profiling/snakeviz.png)
164 162
165Reddit user [ccharles](https://www.reddit.com/user/ccharles) suggested a better way for installing pip software by targeting user level instead of using sudo. 163Reddit user [ccharles](https://www.reddit.com/user/ccharles) suggested a better way for installing pip software by targeting user level instead of using sudo.
166 164
diff --git a/posts/2017-08-11-simple-iot-application.md b/content/posts/2017-08-11-simple-iot-application.md
index 0c90f43..b48f2fb 100644
--- a/posts/2017-08-11-simple-iot-application.md
+++ b/content/posts/2017-08-11-simple-iot-application.md
@@ -1,10 +1,8 @@
1--- 1---
2Title: Simple IOT application supported by real-time monitoring and data history 2title: Simple IOT application supported by real-time monitoring and data history
3Description: Develop simple IOT application with Arduino MKR1000 and Python 3url: simple-iot-application.html
4Slug: simple-iot-application 4date: 2017-08-11
5Listing: true 5draft: false
6Created: 2017-08-11
7Tags: []
8--- 6---
9 7
10## Initial thoughts 8## Initial thoughts
@@ -29,7 +27,7 @@ Step 1. and 3. will share the same web application. One route will be dedicated
29 27
30Schema below represents what we will try to achieve and how different parts correlates to each other. 28Schema below represents what we will try to achieve and how different parts correlates to each other.
31 29
32![Overview](/assets/iot-application/simple-iot-application-overview.svg) 30![Overview](/iot-application/simple-iot-application-overview.svg)
33 31
34## Simple Python API 32## Simple Python API
35 33
@@ -150,11 +148,11 @@ To run this simply go to folder containing python file and run ```python webapp.
150 148
151After testing the service with Restlet Client you should be able to view your data in a database file ```data.db```. 149After testing the service with Restlet Client you should be able to view your data in a database file ```data.db```.
152 150
153![REST settings example](/assets/iot-application/iot-rest-example.png) 151![REST settings example](/iot-application/iot-rest-example.png)
154 152
155You can also check the contents of new database file by using desktop client for SQLite → [DB Browser for SQLite](http://sqlitebrowser.org/). 153You can also check the contents of new database file by using desktop client for SQLite → [DB Browser for SQLite](http://sqlitebrowser.org/).
156 154
157![SQLite database example](/assets/iot-application/iot-sqlite-db.png) 155![SQLite database example](/iot-application/iot-sqlite-db.png)
158 156
159Table structure is as simple as it can be. We have ts (timestamp) and value (value from Arduino). As you can see timestamp is generated on API side. If you would happen to have atomic clock on Arduino it would be then better to generate and send timestamp with the value. This would be particularity useful if we would be collecting sensor data at a higher frequency and then sending this data in bulk to API. 157Table structure is as simple as it can be. We have ts (timestamp) and value (value from Arduino). As you can see timestamp is generated on API side. If you would happen to have atomic clock on Arduino it would be then better to generate and send timestamp with the value. This would be particularity useful if we would be collecting sensor data at a higher frequency and then sending this data in bulk to API.
160 158
@@ -471,9 +469,9 @@ If everything goes well you should be seeing new data-points rendered on chart e
471 469
472If you navigate to ```http://0.0.0.0:5000``` you should see rendered chart as shown on picture below. 470If you navigate to ```http://0.0.0.0:5000``` you should see rendered chart as shown on picture below.
473 471
474![Application output](/assets/iot-application/iot-app-output.png) 472![Application output](/iot-application/iot-app-output.png)
475 473
476Complete application with all the code is available for [download](/assets/iot-application/simple-iot-application.zip). 474Complete application with all the code is available for [download](/iot-application/simple-iot-application.zip).
477 475
478## Conclusion 476## Conclusion
479 477
diff --git a/posts/2018-01-16-using-digitalocean-spaces-object-storage-with-fuse.md b/content/posts/2018-01-16-using-digitalocean-spaces-object-storage-with-fuse.md
index 9b75ac7..65cc7b5 100644
--- a/posts/2018-01-16-using-digitalocean-spaces-object-storage-with-fuse.md
+++ b/content/posts/2018-01-16-using-digitalocean-spaces-object-storage-with-fuse.md
@@ -1,10 +1,8 @@
1--- 1---
2Title: Using DigitalOcean Spaces Object Storage with FUSE 2title: Using DigitalOcean Spaces Object Storage with FUSE
3Description: Using DigitalOcean Spaces Object Storage with FUSE 3url: using-digitalocean-spaces-object-storage-with-fuse.html
4Slug: using-digitalocean-spaces-object-storage-with-fuse 4date: 2018-01-16
5Listing: true 5draft: false
6Created: 2018-01-16
7Tags: []
8--- 6---
9 7
10Couple of months ago [DigitalOcean](https://www.digitalocean.com) introduced new product called [Spaces](https://blog.digitalocean.com/introducing-spaces-object-storage/) which is Object Storage very similar to Amazon's S3. This really peaked my interest, because this was something I was missing and even the thought of going over the internet for such functionality was in no interest to me. Also in fashion with their previous pricing this also is very cheap and pricing page is a no-brainer compared to AWS or GCE. [Prices are clearly and precisely defined and outlined](https://www.digitalocean.com/pricing/). You must love them for that :) 8Couple of months ago [DigitalOcean](https://www.digitalocean.com) introduced new product called [Spaces](https://blog.digitalocean.com/introducing-spaces-object-storage/) which is Object Storage very similar to Amazon's S3. This really peaked my interest, because this was something I was missing and even the thought of going over the internet for such functionality was in no interest to me. Also in fashion with their previous pricing this also is very cheap and pricing page is a no-brainer compared to AWS or GCE. [Prices are clearly and precisely defined and outlined](https://www.digitalocean.com/pricing/). You must love them for that :)
@@ -28,13 +26,13 @@ To make this work you will need DigitalOcean account. If you don't have one you
28 26
29Instuctions on how to use SSH keys and how to setup them are available in article [How To Use SSH Keys with DigitalOcean Droplets](https://www.digitalocean.com/community/tutorials/how-to-use-ssh-keys-with-digitalocean-droplets). 27Instuctions on how to use SSH keys and how to setup them are available in article [How To Use SSH Keys with DigitalOcean Droplets](https://www.digitalocean.com/community/tutorials/how-to-use-ssh-keys-with-digitalocean-droplets).
30 28
31![DigitalOcean Droplets](/assets/do-fuse/fuse-droplets.png) 29![DigitalOcean Droplets](/do-fuse/fuse-droplets.png)
32 30
33After we created Droplet it's time to create new Space. This is done by clicking on a button [Create](https://cloud.digitalocean.com/spaces/new) (right top corner) and selecting Spaces. Choose pronounceable ```Unique name``` because we will use it in examples below. You can either choose Private or Public, it doesn't matter in our case. And you can always change that in the future. 31After we created Droplet it's time to create new Space. This is done by clicking on a button [Create](https://cloud.digitalocean.com/spaces/new) (right top corner) and selecting Spaces. Choose pronounceable ```Unique name``` because we will use it in examples below. You can either choose Private or Public, it doesn't matter in our case. And you can always change that in the future.
34 32
35When you have created new Space we should [generate Access key](https://cloud.digitalocean.com/settings/api/tokens). This link will guide to the page when you can generate this key. After you create new one, please save provided Key and Secret because Secret will not be shown again. 33When you have created new Space we should [generate Access key](https://cloud.digitalocean.com/settings/api/tokens). This link will guide to the page when you can generate this key. After you create new one, please save provided Key and Secret because Secret will not be shown again.
36 34
37![DigitalOcean Spaces](/assets/do-fuse/fuse-spaces.png) 35![DigitalOcean Spaces](/do-fuse/fuse-spaces.png)
38 36
39Now that we have new Space and Access key we should SSH into our machine. 37Now that we have new Space and Access key we should SSH into our machine.
40 38
@@ -104,14 +102,14 @@ As I suspected, object size is not really that important. Sadly I don't have the
104 102
105**Here are plotted results** 103**Here are plotted results**
106 104
107You can download [raw result here](/assets/do-fuse/copy-benchmarks.tsv). Measurements are in seconds. 105You can download [raw result here](/do-fuse/copy-benchmarks.tsv). Measurements are in seconds.
108 106
109<script src="//cdn.plot.ly/plotly-latest.min.js"></script> 107<script src="//cdn.plot.ly/plotly-latest.min.js"></script>
110<div id="copy-benchmarks"></div> 108<div id="copy-benchmarks"></div>
111<script> 109<script>
112(function(){ 110(function(){
113 var request = new XMLHttpRequest(); 111 var request = new XMLHttpRequest();
114 request.open("GET", "/assets/do-fuse/copy-benchmarks.tsv", true); 112 request.open("GET", "/do-fuse/copy-benchmarks.tsv", true);
115 request.onload = function() { 113 request.onload = function() {
116 if (request.status >= 200 && request.status < 400) { 114 if (request.status >= 200 && request.status < 400) {
117 var payload = request.responseText.trim(); 115 var payload = request.responseText.trim();
@@ -220,13 +218,13 @@ result_time = CLOSE = end_time - start_time
220print("CLOSE: %g seconds" % (result_time)) 218print("CLOSE: %g seconds" % (result_time))
221``` 219```
222 220
223You can download [raw result here](/assets/do-fuse/sqlite-benchmarks.tsv). And again, these results are done on a local block storage and do not represent capabilities of object storage. With my current approach and state of the test code these can not be done. I would need to make Python code much more robust and check locking etc. 221You can download [raw result here](/do-fuse/sqlite-benchmarks.tsv). And again, these results are done on a local block storage and do not represent capabilities of object storage. With my current approach and state of the test code these can not be done. I would need to make Python code much more robust and check locking etc.
224 222
225<div id="sqlite-benchmarks"></div> 223<div id="sqlite-benchmarks"></div>
226<script> 224<script>
227(function(){ 225(function(){
228 var request = new XMLHttpRequest(); 226 var request = new XMLHttpRequest();
229 request.open("GET", "/assets/do-fuse/sqlite-benchmarks.tsv", true); 227 request.open("GET", "/do-fuse/sqlite-benchmarks.tsv", true);
230 request.onload = function() { 228 request.onload = function() {
231 if (request.status >= 200 && request.status < 400) { 229 if (request.status >= 200 && request.status < 400) {
232 var payload = request.responseText.trim(); 230 var payload = request.responseText.trim();
diff --git a/posts/2019-01-03-encoding-binary-data-into-dna-sequence.md b/content/posts/2019-01-03-encoding-binary-data-into-dna-sequence.md
index 4910bb3..ff346d4 100644
--- a/posts/2019-01-03-encoding-binary-data-into-dna-sequence.md
+++ b/content/posts/2019-01-03-encoding-binary-data-into-dna-sequence.md
@@ -1,10 +1,8 @@
1--- 1---
2Title: Encoding binary data into DNA sequence 2title: Encoding binary data into DNA sequence
3Description: Imagine a world where you could go outside and take a leaf from a tree and put it through your ~ personal DNA sequencer and get data like music, videos or computer programs from it 3url: encoding-binary-data-into-dna-sequence.html
4Slug: encoding-binary-data-into-dna-sequence 4date: 2019-01-03
5Listing: true 5draft: false
6Created: 2019-01-03
7Tags: []
8--- 6---
9 7
10## Initial thoughts 8## Initial thoughts
@@ -83,7 +81,7 @@ Deoxyribonucleic acid, a self-replicating material which is **present in nearly
83 81
84The nucleotide in DNA consists of a sugar (deoxyribose), one of four bases (cytosine (C), thymine (T), adenine (A), guanine (G)), and a phosphate. Cytosine and thymine are pyrimidine bases, while adenine and guanine are purine bases. The sugar and the base together are called a nucleoside. 82The nucleotide in DNA consists of a sugar (deoxyribose), one of four bases (cytosine (C), thymine (T), adenine (A), guanine (G)), and a phosphate. Cytosine and thymine are pyrimidine bases, while adenine and guanine are purine bases. The sugar and the base together are called a nucleoside.
85 83
86![DNA](/assets/dna-sequence/dna-basics.jpg) 84![DNA](/dna-sequence/dna-basics.jpg)
87 85
88*DNA (a) forms a double stranded helix, and (b) adenine pairs with thymine and cytosine pairs with guanine. (credit a: modification of work by Jerome Walker, Dennis Myts)* 86*DNA (a) forms a double stranded helix, and (b) adenine pairs with thymine and cytosine pairs with guanine. (credit a: modification of work by Jerome Walker, Dennis Myts)*
89 87
@@ -172,8 +170,8 @@ FASTA format was extended by [FASTQ](https://en.wikipedia.org/wiki/FASTQ_format)
172 170
173### PNG encoded DNA sequence 171### PNG encoded DNA sequence
174 172
175| Nucleotides | RGB | Color name | 173| Nucleotides | RGB | Color name |
176| ------------- | ----------- | ---------- | 174| ------------ | ----------- | ---------- |
177| A âžž Adenine | (0,0,255) | Blue | 175| A âžž Adenine | (0,0,255) | Blue |
178| G âžž Guanine | (0,100,0) | Green | 176| G âžž Guanine | (0,100,0) | Green |
179| C âžž Cytosine | (255,0,0) | Red | 177| C âžž Cytosine | (255,0,0) | Red |
@@ -248,11 +246,11 @@ Then we encode FASTA file from previous operation to encode this data into PNG.
248 246
249After encoding into PNG format this file looks like this. 247After encoding into PNG format this file looks like this.
250 248
251![Encoded Quote in PNG format](/assets/dna-sequence/quote.png) 249![Encoded Quote in PNG format](/dna-sequence/quote.png)
252 250
253The larger the input stream is the larger the PNG file would be. 251The larger the input stream is the larger the PNG file would be.
254 252
255Compiled basic Hello World C program with [GCC](https://www.gnu.org/software/gcc/) would [look like](/assets/dna-sequence/sample.png). 253Compiled basic Hello World C program with [GCC](https://www.gnu.org/software/gcc/) would [look like](/dna-sequence/sample.png).
256 254
257```c 255```c
258// gcc -O3 -o sample sample.c 256// gcc -O3 -o sample sample.c
@@ -315,7 +313,7 @@ dd if=<(openssl enc -aes-256-ctr -pass pass:"$(dd if=/dev/urandom bs=128 count=
315 313
316Our freshly generated 1KB file looks something like this (its full of garbage data as intended). 314Our freshly generated 1KB file looks something like this (its full of garbage data as intended).
317 315
318![Sample binary file 1KB](/assets/dna-sequence/sample-binary-file.png) 316![Sample binary file 1KB](/dna-sequence/sample-binary-file.png)
319 317
320We create following binary files: 318We create following binary files:
321- 1KB.bin 319- 1KB.bin
@@ -337,7 +335,7 @@ Then we GZIP all the FASTA files to see how much the can be compressed.
337gzip -9 < 10MB.fa > 10MB.fa.gz 335gzip -9 < 10MB.fa > 10MB.fa.gz
338``` 336```
339 337
340[Download ODS file with benchmarks](/assets/dna-sequence/benchmarks.ods). 338[Download ODS file with benchmarks](/dna-sequence/benchmarks.ods).
341 339
342## References 340## References
343 341
diff --git a/posts/2019-10-14-simplifying-and-reducing-clutter.md b/content/posts/2019-10-14-simplifying-and-reducing-clutter.md
index 7d2d8d6..deb0cb8 100644
--- a/posts/2019-10-14-simplifying-and-reducing-clutter.md
+++ b/content/posts/2019-10-14-simplifying-and-reducing-clutter.md
@@ -1,10 +1,8 @@
1--- 1---
2Title: Simplifying and reducing clutter in my life and work 2title: Simplifying and reducing clutter in my life and work
3Description: Simplifying and reducing clutter in my life and work 3url: simplifying-and-reducing-clutter.html
4Slug: simplifying-and-reducing-clutter 4date: 2019-10-14
5Listing: true 5draft: false
6Created: 2019-10-14
7Tags: []
8--- 6---
9 7
10I recently moved my main working machine back from Hachintosh to Linux. Well the experiment was interesting and I have done some great work on macOS but it was time to move back. 8I recently moved my main working machine back from Hachintosh to Linux. Well the experiment was interesting and I have done some great work on macOS but it was time to move back.
diff --git a/posts/2019-10-19-using-sentiment-analysis-for-clickbait-detection.md b/content/posts/2019-10-19-using-sentiment-analysis-for-clickbait-detection.md
index 831b490..0f5d994 100644
--- a/posts/2019-10-19-using-sentiment-analysis-for-clickbait-detection.md
+++ b/content/posts/2019-10-19-using-sentiment-analysis-for-clickbait-detection.md
@@ -1,10 +1,8 @@
1--- 1---
2Title: Using sentiment analysis for clickbait detection in RSS feeds 2title: Using sentiment analysis for clickbait detection in RSS feeds
3Description: Using Python with sentiment analysis to detect if titles in RSS feeds are clickbait 3url: using-sentiment-analysis-for-clickbait-detection-in-rss-feeds.html
4Slug: using-sentiment-analysis-for-clickbait-detection-in-rss-feeds 4date: 2019-10-19
5Listing: true 5draft: false
6Created: 2019-10-19
7Tags: []
8--- 6---
9 7
10## Initial thoughts 8## Initial thoughts
@@ -74,11 +72,11 @@ plt.show()
742. Rule-based approach may not be the best way of doing this. By using deep learning we would be able to get better insights. 722. Rule-based approach may not be the best way of doing this. By using deep learning we would be able to get better insights.
753. **Next step would be to** periodically fetch RSS items and store them over a longer period of time and then perform analysis again and use either machine learning or deep learning on top of it. 733. **Next step would be to** periodically fetch RSS items and store them over a longer period of time and then perform analysis again and use either machine learning or deep learning on top of it.
76 74
77![Relationship between title and description](/assets/sentiment-analysis/guardian-sa-title-desc-relationship.png) 75![Relationship between title and description](/sentiment-analysis/guardian-sa-title-desc-relationship.png)
78 76
79Figure above displays difference between title and description sentiment for specific RSS feed item. 1 means positive and -1 means negative sentiment. 77Figure above displays difference between title and description sentiment for specific RSS feed item. 1 means positive and -1 means negative sentiment.
80 78
81[» Download Jupyter Notebook](/assets/sentiment-analysis/sentiment-analysis.ipynb) 79[» Download Jupyter Notebook](/sentiment-analysis/sentiment-analysis.ipynb)
82 80
83## Going further 81## Going further
84 82
diff --git a/posts/2020-03-22-simple-sse-based-pubsub-server.md b/content/posts/2020-03-22-simple-sse-based-pubsub-server.md
index 4256aed..166ef8a 100644
--- a/posts/2020-03-22-simple-sse-based-pubsub-server.md
+++ b/content/posts/2020-03-22-simple-sse-based-pubsub-server.md
@@ -1,10 +1,8 @@
1--- 1---
2Title: Simple Server-Sent Events based PubSub Server 2title: Simple Server-Sent Events based PubSub Server
3Description: Simple Server-Sent Events based PubSub Server 3url: simple-server-sent-events-based-pubsub-server.html
4Slug: simple-server-sent-events-based-pubsub-server 4date: 2020-03-22
5Listing: true 5draft: false
6Created: 2020-03-22
7Tags: []
8--- 6---
9 7
10## Before we continue ... 8## Before we continue ...
@@ -23,7 +21,7 @@ Publisher Subscriber model is nothing new and there are many amazing solutions o
23 21
24The easiest way to explain this is with diagram bellow. Basic function is simple. We have subscribers that receive messages, and we have publishers that create and post messages. Similar model is also well know pattern that works on a premise of consumers and producers, and they take similar roles. 22The easiest way to explain this is with diagram bellow. Basic function is simple. We have subscribers that receive messages, and we have publishers that create and post messages. Similar model is also well know pattern that works on a premise of consumers and producers, and they take similar roles.
25 23
26![How PubSub works](/assets/simple-pubsub-server/pubsub-overview.png) 24![How PubSub works](/simple-pubsub-server/pubsub-overview.png)
27 25
28**These are some naive characteristics we want to achieve:** 26**These are some naive characteristics we want to achieve:**
29 27
@@ -49,7 +47,7 @@ Read more about it on [official specification page](https://html.spec.whatwg.org
49 47
50### Current browser support 48### Current browser support
51 49
52![Browser support](../assets/simple-pubsub-server/caniuse.png) 50![Browser support](../simple-pubsub-server/caniuse.png)
53 51
54Check [https://caniuse.com/#feat=eventsource](https://caniuse.com/#feat=eventsource) for latest information about browser support. 52Check [https://caniuse.com/#feat=eventsource](https://caniuse.com/#feat=eventsource) for latest information about browser support.
55 53
@@ -107,7 +105,7 @@ Google Chrome provides build-in debugging and exploration tool for [Server-Sent
107 105
108> You can debug only client side events that get received and not the server ones. For debugging server events add `console.log` to `server.js` code and print out events. 106> You can debug only client side events that get received and not the server ones. For debugging server events add `console.log` to `server.js` code and print out events.
109 107
110![Google Chrome Developer Tools EventStream](../assets/simple-pubsub-server/chrome-debugging.png) 108![Google Chrome Developer Tools EventStream](../simple-pubsub-server/chrome-debugging.png)
111 109
112## Server implementation 110## Server implementation
113 111
@@ -236,9 +234,9 @@ One example would be, that we have index page and we want to receive messages ab
236 234
237### Publisher and subscriber in action 235### Publisher and subscriber in action
238 236
239<video src="/assets/simple-pubsub-server/clients.mp4" controls></video> 237<video src="/simple-pubsub-server/clients.mp4" controls></video>
240 238
241You can download [the code](../assets/simple-pubsub-server/sse-pubsub-server.zip) and follow along. 239You can download [the code](../simple-pubsub-server/sse-pubsub-server.zip) and follow along.
242 240
243### Publisher 241### Publisher
244 242
diff --git a/posts/2020-03-27-create-placeholder-images-with-sharp.md b/content/posts/2020-03-27-create-placeholder-images-with-sharp.md
index 2869857..fc8eb0c 100644
--- a/posts/2020-03-27-create-placeholder-images-with-sharp.md
+++ b/content/posts/2020-03-27-create-placeholder-images-with-sharp.md
@@ -1,10 +1,8 @@
1--- 1---
2Title: Create placeholder images with sharp Node.js image processing library 2title: Create placeholder images with sharp Node.js image processing library
3Description: Create placeholder images with sharp Node.js image processing library 3url: create-placeholder-images-with-sharp.html
4Slug: create-placeholder-images-with-sharp 4date: 2020-03-27
5Listing: true 5draft: false
6Created: 2020-03-27
7Tags: []
8--- 6---
9 7
10I have been searching for a solution to pre-generate some placeholder images for image server I needed to develop that resizes images on S3. I though this would be a 15min job and quickly found out how very mistaken I was. 8I have been searching for a solution to pre-generate some placeholder images for image server I needed to develop that resizes images on S3. I though this would be a 15min job and quickly found out how very mistaken I was.
diff --git a/posts/2020-03-29-the-strange-case-of-elasticsearch-allocation-failure.md b/content/posts/2020-03-29-the-strange-case-of-elasticsearch-allocation-failure.md
index a577c2b..a976a7e 100644
--- a/posts/2020-03-29-the-strange-case-of-elasticsearch-allocation-failure.md
+++ b/content/posts/2020-03-29-the-strange-case-of-elasticsearch-allocation-failure.md
@@ -1,10 +1,8 @@
1--- 1---
2Title: The strange case of Elasticsearch allocation failure 2title: The strange case of Elasticsearch allocation failure
3Description: Elasticsearch allocation failure on some indices while reporting domain processing 3url: the-strange-case-of-elasticsearch-allocation-failure.html
4Slug: the-strange-case-of-elasticsearch-allocation-failure 4date: 2020-03-29
5Listing: true 5draft: false
6Created: 2020-03-29
7Tags: []
8--- 6---
9 7
10I've been using Elasticsearch in production for 5 years now and never had a single problem with it. Hell, never even known there could be a problem. Just worked. All this time. The first node that I deployed is still being used in production, never updated, upgraded, touched in anyway. 8I've been using Elasticsearch in production for 5 years now and never had a single problem with it. Hell, never even known there could be a problem. Just worked. All this time. The first node that I deployed is still being used in production, never updated, upgraded, touched in anyway.
diff --git a/posts/2020-03-30-my-love-and-hate-relationship-with-nodejs.md b/content/posts/2020-03-30-my-love-and-hate-relationship-with-nodejs.md
index b24bacb..2b8b35b 100644
--- a/posts/2020-03-30-my-love-and-hate-relationship-with-nodejs.md
+++ b/content/posts/2020-03-30-my-love-and-hate-relationship-with-nodejs.md
@@ -1,10 +1,8 @@
1--- 1---
2Title: My love and hate relationship with Node.js 2title: My love and hate relationship with Node.js
3Description: How I found a way to love and hate Node.js with a passion 3url: my-love-and-hate-relationship-with-nodejs.html
4Slug: my-love-and-hate-relationship-with-nodejs 4date: 2020-03-30
5Listing: true 5draft: false
6Created: 2020-03-30
7Tags: []
8--- 6---
9 7
10Previous project I was working on was being coded in [Golang](https://golang.org/). Also was my first project using it. And damn, that was an awesome experience. The whole thing is just superb. From how errors are handled. The C-like way you handle compiling. The way the language is structured making it incredibly versatile and easy to learn. 8Previous project I was working on was being coded in [Golang](https://golang.org/). Also was my first project using it. And damn, that was an awesome experience. The whole thing is just superb. From how errors are handled. The C-like way you handle compiling. The way the language is structured making it incredibly versatile and easy to learn.
diff --git a/posts/2020-05-05-remote-work.md b/content/posts/2020-05-05-remote-work.md
index 9562992..d4b5cbe 100755
--- a/posts/2020-05-05-remote-work.md
+++ b/content/posts/2020-05-05-remote-work.md
@@ -1,10 +1,8 @@
1--- 1---
2Title: Remote work and how it affects the daily lives of people 2title: Remote work and how it affects the daily lives of people
3Description: Remote work and how it affects the daily lives of people 3url: remote-work.html
4Slug: remote-work 4date: 2020-05-05
5Listing: true 5draft: false
6Created: 2020-05-05
7Tags: []
8--- 6---
9 7
10I have been working remotely for the past 5 years. I love it. Love the freedom and make your schedule thingy. 8I have been working remotely for the past 5 years. I love it. Love the freedom and make your schedule thingy.
diff --git a/posts/2020-08-15-systemd-disable-wake-onmouse.md b/content/posts/2020-08-15-systemd-disable-wake-onmouse.md
index 90288ac..09e5036 100644
--- a/posts/2020-08-15-systemd-disable-wake-onmouse.md
+++ b/content/posts/2020-08-15-systemd-disable-wake-onmouse.md
@@ -1,10 +1,8 @@
1--- 1---
2Title: Disable mouse wake from suspend with systemd service 2title: Disable mouse wake from suspend with systemd service
3Description: Disable mouse wake from suspend with systemd service 3url: disable-mouse-wake-from-suspend-with-systemd-service.html
4Slug: disable-mouse-wake-from-suspend-with-systemd-service 4date: 2020-08-15
5Listing: true 5draft: false
6Created: 2020-08-15
7Tags: []
8--- 6---
9 7
10I recently bought [ThinkPad X220](https://www.laptopmag.com/reviews/laptops/lenovo-thinkpad-x220) just as a joke on eBay to test Linux distributions and play around with things and not destroy my main machine. Little to my knowledge I felt in love with it. Man, they really made awesome machines back then. 8I recently bought [ThinkPad X220](https://www.laptopmag.com/reviews/laptops/lenovo-thinkpad-x220) just as a joke on eBay to test Linux distributions and play around with things and not destroy my main machine. Little to my knowledge I felt in love with it. Man, they really made awesome machines back then.
diff --git a/posts/2020-09-06-esp-and-micropython.md b/content/posts/2020-09-06-esp-and-micropython.md
index a0a3b93..4b6e568 100644
--- a/posts/2020-09-06-esp-and-micropython.md
+++ b/content/posts/2020-09-06-esp-and-micropython.md
@@ -1,10 +1,8 @@
1--- 1---
2Title: Getting started with MicroPython and ESP8266 2title: Getting started with MicroPython and ESP8266
3Description: Getting started with MicroPython and ESP8266 3url: esp8266-and-micropython-guide.html
4Slug: esp8266-and-micropython-guide 4date: 2020-09-06
5Listing: true 5draft: false
6Created: 2020-09-06
7Tags: []
8--- 6---
9 7
10**Table of contents** 8**Table of contents**
@@ -25,7 +23,7 @@ A while ago I bought some [ESP8266](https://www.espressif.com/en/products/socs/e
25 23
26For my project, I used [ESP32](https://www.espressif.com/en/products/socs/esp32) but I could easily choose [ESP8266](https://www.espressif.com/en/products/socs/esp8266). This guide contains which tools I use and how I prepared my workspace to code for [ESP8266](https://www.espressif.com/en/products/socs/esp8266). 24For my project, I used [ESP32](https://www.espressif.com/en/products/socs/esp32) but I could easily choose [ESP8266](https://www.espressif.com/en/products/socs/esp8266). This guide contains which tools I use and how I prepared my workspace to code for [ESP8266](https://www.espressif.com/en/products/socs/esp8266).
27 25
28![ESP8266 and ESP32 boards](/assets/esp8366-micropython/boards.jpg) 26![ESP8266 and ESP32 boards](/esp8366-micropython/boards.jpg)
29 27
30This guide covers: 28This guide covers:
31- flashing SOC 29- flashing SOC
diff --git a/posts/2020-09-08-bind-warning-on-login.md b/content/posts/2020-09-08-bind-warning-on-login.md
index ab26b0c..3f276c6 100644
--- a/posts/2020-09-08-bind-warning-on-login.md
+++ b/content/posts/2020-09-08-bind-warning-on-login.md
@@ -1,10 +1,8 @@
1--- 1---
2Title: Fix bind warning in .profile on login in Ubuntu 2title: Fix bind warning in .profile on login in Ubuntu
3Description: Fix bind warning in .profile on login in Ubuntu 3url: bind-warning-on-login-in-ubuntu.html
4Slug: bind-warning-on-login-in-ubuntu 4date: 2020-09-08
5Listing: true 5draft: false
6Created: 2020-09-08
7Tags: []
8--- 6---
9 7
10Recently I moved back to [bash](https://www.gnu.org/software/bash/) as my default shell. I was previously using [fish](https://fishshell.com/) and got used to the cool features it has. But, regardless of that, I wanted to move to a more standard shell because I was hopping back and forth with exporting variables and stuff like that which got pretty annoying. 8Recently I moved back to [bash](https://www.gnu.org/software/bash/) as my default shell. I was previously using [fish](https://fishshell.com/) and got used to the cool features it has. But, regardless of that, I wanted to move to a more standard shell because I was hopping back and forth with exporting variables and stuff like that which got pretty annoying.
@@ -23,7 +21,7 @@ bind '"\e[Z":menu-complete-backward'
23 21
24I haven't noticed anything wrong with this and all was working fine until I restarted my machine and then I got this error. 22I haven't noticed anything wrong with this and all was working fine until I restarted my machine and then I got this error.
25 23
26![Profile bind error](/assets/profile-bind-error/error.jpg) 24![Profile bind error](/profile-bind-error/error.jpg)
27 25
28When I pressed OK, I got into the [Gnome shell](https://wiki.gnome.org/Projects/GnomeShell) and all was working fine, but the error was still bugging me. I started looking for the reason why this is happening and found a solution to this error on [Remote SSH Commands - bash bind warning: line editing not enabled](https://superuser.com/a/892682). 26When I pressed OK, I got into the [Gnome shell](https://wiki.gnome.org/Projects/GnomeShell) and all was working fine, but the error was still bugging me. I started looking for the reason why this is happening and found a solution to this error on [Remote SSH Commands - bash bind warning: line editing not enabled](https://superuser.com/a/892682).
29 27
diff --git a/posts/2020-09-09-digitalocean-sync.md b/content/posts/2020-09-09-digitalocean-sync.md
index 5ee6c47..e7da657 100644
--- a/posts/2020-09-09-digitalocean-sync.md
+++ b/content/posts/2020-09-09-digitalocean-sync.md
@@ -1,10 +1,8 @@
1--- 1---
2Title: Using Digitalocean Spaces to sync between computers 2title: Using Digitalocean Spaces to sync between computers
3Description: Using Digitalocean Spaces to sync between computers 3url: digitalocean-spaces-to-sync-between-computers.html
4Slug: digitalocean-spaces-to-sync-between-computers 4date: 2020-09-09
5Listing: true 5draft: false
6Created: 2020-09-09
7Tags: []
8--- 6---
9 7
10I've been using [Dropbox](https://www.dropbox.com/) for probably **10+ years** now and I-ve became so used to it that it runs in the background that I don't even imagine a world without it. But it's not without problems. 8I've been using [Dropbox](https://www.dropbox.com/) for probably **10+ years** now and I-ve became so used to it that it runs in the background that I don't even imagine a world without it. But it's not without problems.
diff --git a/posts/2021-01-24-replacing-dropbox-with-s3.md b/content/posts/2021-01-24-replacing-dropbox-with-s3.md
index 4a181b5..12fb8cf 100644
--- a/posts/2021-01-24-replacing-dropbox-with-s3.md
+++ b/content/posts/2021-01-24-replacing-dropbox-with-s3.md
@@ -1,10 +1,8 @@
1--- 1---
2Title: Replacing Dropbox in favor of DigitalOcean spaces 2title: Replacing Dropbox in favor of DigitalOcean spaces
3Description: Replacing Dropbox in favor of DigitalOcean spaces 3url: replacing-dropbox-in-favor-of-digitalocean-spaces.html
4Slug: replacing-dropbox-in-favor-of-digitalocean-spaces 4date: 2021-01-24
5Listing: true 5draft: false
6Created: 2021-01-24
7Tags: []
8--- 6---
9 7
10A few months ago I experimented with DigitalOcean spaces as my backup solution that could [replace Dropbox eventually](/digitalocean-spaces-to-sync-between-computers.html). That solution worked quite nicely, and I was amazed how smashing together a couple of existing solutions would work this fine. 8A few months ago I experimented with DigitalOcean spaces as my backup solution that could [replace Dropbox eventually](/digitalocean-spaces-to-sync-between-computers.html). That solution worked quite nicely, and I was amazed how smashing together a couple of existing solutions would work this fine.
@@ -80,7 +78,7 @@ You can use this script in a combination with [Cron](https://en.wikipedia.org/wi
80 78
81When you start syncing your local stuff with a remote server you can review your items on DigitalOcean. 79When you start syncing your local stuff with a remote server you can review your items on DigitalOcean.
82 80
83![Dropbox Spaces](/assets/dropbox-sync/dropbox-spaces.png) 81![Dropbox Spaces](/dropbox-sync/dropbox-spaces.png)
84 82
85I have been using this script now for quite some time, and it's working flawlessly. I also uninstalled Dropbox and stopped using it completely. 83I have been using this script now for quite some time, and it's working flawlessly. I also uninstalled Dropbox and stopped using it completely.
86 84
diff --git a/posts/2021-01-25-goaccess.md b/content/posts/2021-01-25-goaccess.md
index 7b5ba5c..2f3d56b 100644
--- a/posts/2021-01-25-goaccess.md
+++ b/content/posts/2021-01-25-goaccess.md
@@ -1,12 +1,12 @@
1--- 1---
2Title: Using GoAccess with Nginx to replace Google Analytics 2title: Using GoAccess with Nginx to replace Google Analytics
3Description: Using GoAccess with Nginx to replace Google Analytics 3url: using-goaccess-with-nginx-to-replace-google-analytics.html
4Slug: using-goaccess-with-nginx-to-replace-google-analytics 4date: 2021-01-25
5Listing: true 5draft: false
6Created: 2021-01-25
7Tags: []
8--- 6---
9 7
8**Table of contents**
9
101. [Opting for log parsing](#opting-for-log-parsing) 101. [Opting for log parsing](#opting-for-log-parsing)
112. [Getting Nginx ready](#getting-nginx-ready) 112. [Getting Nginx ready](#getting-nginx-ready)
123. [Getting GoAccess ready](#getting-goaccess-ready) 123. [Getting GoAccess ready](#getting-goaccess-ready)
@@ -31,10 +31,10 @@ I found this amazing software [GoAccess](https://goaccess.io/) which provides al
31 31
32GoAccess can be used in two different modes. 32GoAccess can be used in two different modes.
33 33
34![GoAccess Terminal](/assets/goaccess/goaccess-dash-term.png) 34![GoAccess Terminal](/goaccess/goaccess-dash-term.png)
35<center><i>Running in a terminal</i></center> 35<center><i>Running in a terminal</i></center>
36 36
37![GoAccess HTML](/assets/goaccess/goaccess-dash-html.png) 37![GoAccess HTML](/goaccess/goaccess-dash-html.png)
38<center><i>Running in a browser</i></center> 38<center><i>Running in a browser</i></center>
39 39
40I, however, need this to run in a browser. So, the second option is the way to go. The Idea is to periodically run cronjob and export this report into a folder that gets then server by Nginx behind a Basic authentication. 40I, however, need this to run in a browser. So, the second option is the way to go. The Idea is to periodically run cronjob and export this report into a folder that gets then server by Nginx behind a Basic authentication.
diff --git a/posts/2021-06-26-simple-world-clock.md b/content/posts/2021-06-26-simple-world-clock.md
index 29c199a..e06d534 100644
--- a/posts/2021-06-26-simple-world-clock.md
+++ b/content/posts/2021-06-26-simple-world-clock.md
@@ -1,10 +1,8 @@
1--- 1---
2Title: Simple world clock with eInk display and Raspberry Pi Zero 2title: Simple world clock with eInk display and Raspberry Pi Zero
3Description: Simple world clockwith eInk display and Raspberry Pi Zero 3url: simple-world-clock-with-eiink-display-and-raspberry-pi-zero.html
4Slug: simple-world-clock-with-eiink-display-and-raspberry-pi-zero 4date: 2021-06-26
5Listing: true 5draft: false
6Created: 2021-06-26
7Tags: []
8--- 6---
9 7
10Our team is spread across the world, from the USA all the way to Australia, so having some sort of world clock makes sense. 8Our team is spread across the world, from the USA all the way to Australia, so having some sort of world clock makes sense.
@@ -15,7 +13,7 @@ But I also have a bunch of electronics that I bought through the time, and I am
15 13
16A while ago I bought a small eInk display [Inky pHAT](https://shop.pimoroni.com/products/inky-phat?variant=12549254217811) and I have a bunch of [Raspberry Pi's Zero](https://www.raspberrypi.org/products/raspberry-pi-zero/) lying around that I really need to use. 14A while ago I bought a small eInk display [Inky pHAT](https://shop.pimoroni.com/products/inky-phat?variant=12549254217811) and I have a bunch of [Raspberry Pi's Zero](https://www.raspberrypi.org/products/raspberry-pi-zero/) lying around that I really need to use.
17 15
18![Inky pHAT, Raspberry Pi Zero](/assets/world-clock/hardware.jpg) 16![Inky pHAT, Raspberry Pi Zero](/world-clock/hardware.jpg)
19 17
20Since the Inky [Inky pHAT](https://shop.pimoroni.com/products/inky-phat?variant=12549254217811) is essentially a HAT, it can easily be added on top of the [Raspberry Pi Zero](https://www.raspberrypi.org/products/raspberry-pi-zero/). 18Since the Inky [Inky pHAT](https://shop.pimoroni.com/products/inky-phat?variant=12549254217811) is essentially a HAT, it can easily be added on top of the [Raspberry Pi Zero](https://www.raspberrypi.org/products/raspberry-pi-zero/).
21 19
@@ -80,10 +78,10 @@ Then we add a cronjob with `crontab -e`.
80 78
81So, we end up with a result like this. 79So, we end up with a result like this.
82 80
83![World Clock](/assets/world-clock/world-clock.jpg) 81![World Clock](/world-clock/world-clock.jpg)
84 82
85And for the enclosure that can be 3D printed, but I haven't yet something like this can be used. 83And for the enclosure that can be 3D printed, but I haven't yet something like this can be used.
86 84
87<iframe id="vs_iframe" src="https://www.viewstl.com/?embedded&url=https%3A%2F%2Fmitjafelicijan.com%2Fassets%2Fworld-clock%2Fenclosure.stl&color=gray&bgcolor=white&edges=no&orientation=front&noborder=no" style="border:0;margin:0;width:100%;height:400px;"></iframe> 85<iframe id="vs_iframe" src="https://www.viewstl.com/?embedded&url=https%3A%2F%2Fmitjafelicijan.com%2Fassets%2Fworld-clock%2Fenclosure.stl&color=gray&bgcolor=white&edges=no&orientation=front&noborder=no" style="border:0;margin:0;width:100%;height:400px;"></iframe>
88 86
89You can download my [STL file for the enclosure here](/assets/world-clock/enclosure.stl), but make sure that dimensions make sense and also opening for USB port should be added or just use a drill and some hot glue to make it stick in the enclosure. 87You can download my [STL file for the enclosure here](/world-clock/enclosure.stl), but make sure that dimensions make sense and also opening for USB port should be added or just use a drill and some hot glue to make it stick in the enclosure.
diff --git a/posts/2021-07-30-from-internet-consumer-to-full-hominum-again.md b/content/posts/2021-07-30-from-internet-consumer-to-full-hominum-again.md
index 97691de..85b6c91 100644
--- a/posts/2021-07-30-from-internet-consumer-to-full-hominum-again.md
+++ b/content/posts/2021-07-30-from-internet-consumer-to-full-hominum-again.md
@@ -1,10 +1,8 @@
1--- 1---
2Title: My journey from being an internet über consumer to being a full hominum again 2title: My journey from being an internet über consumer to being a full hominum again
3Description: My journey from being an internet über consumer to being a full hominum again 3url: from-internet-consumer-to-full-hominum-again.html
4Slug: from-internet-consumer-to-full-hominum-again 4date: 2021-07-30
5Listing: true 5draft: false
6Created: 2021-07-30
7Tags: []
8--- 6---
9 7
10It's been almost a year since I started purging all my online accounts and going down this rabbit hole of being almost independent of the current internet machine. Even though I initially thought that I will have problems adapting, I was pleasantly surprised that the transition went so smoothly. Even better, it brought many benefits to my life. Such as increased focus, less stress about trivial things, etc. 8It's been almost a year since I started purging all my online accounts and going down this rabbit hole of being almost independent of the current internet machine. Even though I initially thought that I will have problems adapting, I was pleasantly surprised that the transition went so smoothly. Even better, it brought many benefits to my life. Such as increased focus, less stress about trivial things, etc.
diff --git a/posts/2021-08-01-linux-cheatsheet.md b/content/posts/2021-08-01-linux-cheatsheet.md
index cd9cced..126e922 100644
--- a/posts/2021-08-01-linux-cheatsheet.md
+++ b/content/posts/2021-08-01-linux-cheatsheet.md
@@ -1,10 +1,8 @@
1--- 1---
2Title: List of essential Linux commands for server management 2title: List of essential Linux commands for server management
3Description: List of essential Linux commands for server management 3url: linux-cheatsheet.html
4Slug: linux-cheatsheet 4date: 2021-08-01
5Listing: true 5draft: false
6Created: 2021-08-01
7Tags: []
8--- 6---
9 7
10**Table of contents** 8**Table of contents**
diff --git a/posts/2021-12-03-debian-based-riced-up-distribution-for-developers.md b/content/posts/2021-12-03-debian-based-riced-up-distribution-for-developers.md
index 2a97477..1f5bd89 100644
--- a/posts/2021-12-03-debian-based-riced-up-distribution-for-developers.md
+++ b/content/posts/2021-12-03-debian-based-riced-up-distribution-for-developers.md
@@ -1,10 +1,8 @@
1--- 1---
2Title: Debian based riced up distribution for Developers and DevOps folks 2title: Debian based riced up distribution for Developers and DevOps folks
3Description: Debian based riced up distribution for Developers and DevOps folks 3url: debian-based-riced-up-distribution-for-developers-and-devops-folks.html
4Slug: debian-based-riced-up-distribution-for-developers-and-devops-folks 4date: 2021-12-03
5Listing: true 5draft: false
6Created: 2021-12-03
7Tags: []
8--- 6---
9 7
10I have been using [Ubuntu](https://ubuntu.com/) for quite a longtime now. I have used [Debian](https://www.debian.org/) in the past and [Manjaro](https://manjaro.org/). Also had [Arch](https://archlinux.org/) for some time and even ran [Gentoo](https://www.gentoo.org/) way back. 8I have been using [Ubuntu](https://ubuntu.com/) for quite a longtime now. I have used [Debian](https://www.debian.org/) in the past and [Manjaro](https://manjaro.org/). Also had [Arch](https://archlinux.org/) for some time and even ran [Gentoo](https://www.gentoo.org/) way back.
@@ -45,28 +43,28 @@ I didn't want this to just be a set of config files for theming purpose. I wante
45 43
46First, I choose terminal installer and left it to load additional components. Avoid using graphical installer in this case. 44First, I choose terminal installer and left it to load additional components. Avoid using graphical installer in this case.
47 45
48![](/assets/dfd-rice/install-00.png) 46![](/dfd-rice/install-00.png)
49 47
50After that I selected hostname and created a normal user and set password for that user and root user and choose guided mode for disk partitioning. 48After that I selected hostname and created a normal user and set password for that user and root user and choose guided mode for disk partitioning.
51 49
52![](/assets/dfd-rice/install-01.png) 50![](/dfd-rice/install-01.png)
53 51
54I left it run to install all the things required for the base system and opted out of scanning additional media for use by the package manager. Those will be downloaded from the internet during installation. 52I left it run to install all the things required for the base system and opted out of scanning additional media for use by the package manager. Those will be downloaded from the internet during installation.
55 53
56![](/assets/dfd-rice/install-02.png) 54![](/dfd-rice/install-02.png)
57 55
58 56
59I opted out of the popularity contest, and **now comes the important part**. Uncheck all the boxes in Software selection and only leave 'standard system utilities'. I also left an SSH server, so I was able to log in to the machine from my main PC. 57I opted out of the popularity contest, and **now comes the important part**. Uncheck all the boxes in Software selection and only leave 'standard system utilities'. I also left an SSH server, so I was able to log in to the machine from my main PC.
60 58
61![](/assets/dfd-rice/install-03.png) 59![](/dfd-rice/install-03.png)
62 60
63At this point, I installed GRUB bootloader on the disk where I installed the system. 61At this point, I installed GRUB bootloader on the disk where I installed the system.
64 62
65![](/assets/dfd-rice/install-04.png) 63![](/dfd-rice/install-04.png)
66 64
67That concluded the installation of base Debian and after restarting the computer I was prompted with the login screen. 65That concluded the installation of base Debian and after restarting the computer I was prompted with the login screen.
68 66
69![](/assets/dfd-rice/install-05.png) 67![](/dfd-rice/install-05.png)
70 68
71Now that I had the base installation, it was time to choose what software do I want to include in this so-called distribution. I wanted out of the box developer experience, so I had plenty to choose. 69Now that I had the base installation, it was time to choose what software do I want to include in this so-called distribution. I wanted out of the box developer experience, so I had plenty to choose.
72 70
@@ -86,7 +84,7 @@ One of the requirements for me was easy custom layouts because I use a really st
86 84
87What I was doing in Gnome was having windows in a layout like the diagram below. This is my common practice. And if you look at it you can clearly see I was replicating tiling window manager setup in Gnome. 85What I was doing in Gnome was having windows in a layout like the diagram below. This is my common practice. And if you look at it you can clearly see I was replicating tiling window manager setup in Gnome.
88 86
89![](/assets/dfd-rice/layout.png) 87![](/dfd-rice/layout.png)
90 88
91 89
92That made me look into a bunch of tiling window managers and then tested them out. Candidates I was looking at were: 90That made me look into a bunch of tiling window managers and then tested them out. Candidates I was looking at were:
@@ -146,7 +144,7 @@ Currently, most of these recipes use what Debian and this is totally fine with m
146 144
147This is some of the output from the installation script. 145This is some of the output from the installation script.
148 146
149![](/assets/dfd-rice/script.png) 147![](/dfd-rice/script.png)
150 148
151Let's take a look at some examples in the installation script. 149Let's take a look at some examples in the installation script.
152 150
@@ -193,4 +191,4 @@ The current version boots in 4s to the login prompt, and after you log in, the d
193 191
194And this is how it looks with two terminals side by side. I really like the simplicity and clean interface. I will polish the colors and stuff like that, but I really do like the results. 192And this is how it looks with two terminals side by side. I really like the simplicity and clean interface. I will polish the colors and stuff like that, but I really do like the results.
195 193
196![](/assets/dfd-rice/desktop.png) 194![](/dfd-rice/desktop.png)
diff --git a/posts/2021-12-25-running-golang-application-as-pid1.md b/content/posts/2021-12-25-running-golang-application-as-pid1.md
index 9913dfb..2f49466 100644
--- a/posts/2021-12-25-running-golang-application-as-pid1.md
+++ b/content/posts/2021-12-25-running-golang-application-as-pid1.md
@@ -1,12 +1,12 @@
1--- 1---
2Title: Running Golang application as PID 1 with Linux kernel 2title: Running Golang application as PID 1 with Linux kernel
3Description: Running Golang application as PID 1 with Linux kernel 3url: running-golang-application-as-pid1.html
4Slug: running-golang-application-as-pid1 4date: 2021-12-25
5Listing: true 5draft: false
6Created: 2021-12-25
7Tags: []
8--- 6---
9 7
8**Table of contents**
9
101. [Unikernels, kernels, and alike](#unikernels-kernels-and-alike) 101. [Unikernels, kernels, and alike](#unikernels-kernels-and-alike)
112. [What is PID 1?](#what-is-pid-1) 112. [What is PID 1?](#what-is-pid-1)
123. [So why even run application as PID 1 instead of just using a container?](#so-why-even-run-application-as-pid-1-instead-of-just-using-a-container) 123. [So why even run application as PID 1 instead of just using a container?](#so-why-even-run-application-as-pid-1-instead-of-just-using-a-container)
@@ -28,7 +28,7 @@ I really like the explanation from the article [Unikernels: Rise of the Virtual
28 28
29If we compare a normal operating system to a unikernel side by side, they would look something like this. 29If we compare a normal operating system to a unikernel side by side, they would look something like this.
30 30
31![Virtual machines vs Containers vs Unikernels](/assets/pid1/unikernels.png) 31![Virtual machines vs Containers vs Unikernels](/pid1/unikernels.png)
32 32
33From this image, we can see how the complexity significantly decreases with the use of Unikernels. This comes with a price, of course. Unikernels are hard to get running and require a lot of work since you don't have an actual proper kernel running in the background providing network access and drivers etc. 33From this image, we can see how the complexity significantly decreases with the use of Unikernels. This comes with a price, of course. Unikernels are hard to get running and require a lot of work since you don't have an actual proper kernel running in the background providing network access and drivers etc.
34 34
@@ -221,7 +221,7 @@ Hello from Golang
221Hello from Golang 221Hello from Golang
222``` 222```
223 223
224The whole [log file here](/assets/pid1/qemu.log). 224The whole [log file here](/pid1/qemu.log).
225 225
226## Size comparison 226## Size comparison
227 227
@@ -290,7 +290,7 @@ genisoimage -R \
290 290
291This will produce `GoAsPID1.iso` which you can use with [Virtualbox](https://www.virtualbox.org/) or [Gnome Boxes](https://apps.gnome.org/app/org.gnome.Boxes/). 291This will produce `GoAsPID1.iso` which you can use with [Virtualbox](https://www.virtualbox.org/) or [Gnome Boxes](https://apps.gnome.org/app/org.gnome.Boxes/).
292 292
293<video src="/assets/pid1/boxes.mp4" controls></video> 293<video src="/pid1/boxes.mp4" controls></video>
294 294
295## Is running applications as PID 1 even worth it? 295## Is running applications as PID 1 even worth it?
296 296
diff --git a/posts/2021-12-30-wap-mobile-web-before-the-web.md b/content/posts/2021-12-30-wap-mobile-web-before-the-web.md
index f43a211..b421535 100644
--- a/posts/2021-12-30-wap-mobile-web-before-the-web.md
+++ b/content/posts/2021-12-30-wap-mobile-web-before-the-web.md
@@ -1,12 +1,12 @@
1--- 1---
2Title: Wireless Application Protocol and the mobile web before the web 2title: Wireless Application Protocol and the mobile web before the web
3Description: Wireless Application Protocol and the mobile web before the web 3url: wap-mobile-web-before-the-web.html
4Slug: wap-mobile-web-before-the-web 4date: 2021-12-30
5Listing: true 5draft: false
6Created: 2021-12-30
7Tags: []
8--- 6---
9 7
8**Table of contents**
9
101. [A little stroll down the history lane](#a-little-stroll-down-the-history-lane) 101. [A little stroll down the history lane](#a-little-stroll-down-the-history-lane)
112. [WAP - Wireless Application Protocol](#wap---wireless-application-protocol) 112. [WAP - Wireless Application Protocol](#wap---wireless-application-protocol)
123. [WML - Wireless Markup Language](#wml---wireless-markup-language) 123. [WML - Wireless Markup Language](#wml---wireless-markup-language)
@@ -29,7 +29,7 @@ These phones were rocking:
29 29
30Let's take a look at these beauties. 30Let's take a look at these beauties.
31 31
32![Old phones](/assets/wap/phones.gif) 32![Old phones](/wap/phones.gif)
33 33
34## WAP - Wireless Application Protocol 34## WAP - Wireless Application Protocol
35 35
@@ -146,7 +146,7 @@ If you look at the python file, I convert all the images into tiny B&W images. T
146 146
147Because I currently don't have a phone old enough to test it on, I used an emulator. And it was really hard to find one. I found [WAP Proof](http://wap-proof.sharewarejunction.com/) on shareware junction, and it did the job well enough. I will try to find and actual device to test it on. 147Because I currently don't have a phone old enough to test it on, I used an emulator. And it was really hard to find one. I found [WAP Proof](http://wap-proof.sharewarejunction.com/) on shareware junction, and it did the job well enough. I will try to find and actual device to test it on.
148 148
149<video src="/assets/wap/emulator.mp4" controls></video> 149<video src="/wap/emulator.mp4" controls></video>
150 150
151If you are using Nginx to serve the contents, add a directive to the hosts file that will automatically server `index.wml` file. 151If you are using Nginx to serve the contents, add a directive to the hosts file that will automatically server `index.wml` file.
152 152
diff --git a/posts/2022-06-28-sentiment-based-on-political-bias.md b/content/posts/2022-06-28-sentiment-based-on-political-bias.md
index 4debfeb..5b7816c 100644
--- a/posts/2022-06-28-sentiment-based-on-political-bias.md
+++ b/content/posts/2022-06-28-sentiment-based-on-political-bias.md
@@ -1,10 +1,8 @@
1--- 1---
2Title: Sentiment distribution analysis based on political bias in online publications 2title: Sentiment distribution analysis based on political bias in online publications
3Description: Sentiment based on political bias 3url: sentiment-based-on-political-bias.html
4Slug: sentiment-based-on-political-bias 4date: 2022-06-28
5Listing: false 5draft: true
6Created: 2022-06-28
7Tags: []
8--- 6---
9 7
10I have been wondering for a long time what would sentiment differences look based on political leaning from popular publications. Is it the left that is more optimistic, center or the right. 8I have been wondering for a long time what would sentiment differences look based on political leaning from popular publications. Is it the left that is more optimistic, center or the right.
diff --git a/posts/2022-06-30-trying-out-helix-editor.md b/content/posts/2022-06-30-trying-out-helix-editor.md
index 9e2cc14..8286735 100644
--- a/posts/2022-06-30-trying-out-helix-editor.md
+++ b/content/posts/2022-06-30-trying-out-helix-editor.md
@@ -1,10 +1,8 @@
1--- 1---
2Title: Trying out Helix code editor as my main editor 2title: Trying out Helix code editor as my main editor
3Description: Trying out Helix code editor as my main editor 3url: tying-out-helix-code-editor.html
4Slug: tying-out-helix-code-editor 4date: 2022-06-30
5Listing: true 5draft: false
6Created: 2022-06-30
7Tags: []
8--- 6---
9 7
10I have been searching for a lightweight code editor for quite some time. One of the main reasons was that I wanted something that doesn't burn through CPU and RAM usage is not through the roof. I have been mostly using Visual Studio Code. It's been an outstanding editor. I have no quarrel with it at all. It's just time to spice life up with something new. 8I have been searching for a lightweight code editor for quite some time. One of the main reasons was that I wanted something that doesn't burn through CPU and RAM usage is not through the roof. I have been mostly using Visual Studio Code. It's been an outstanding editor. I have no quarrel with it at all. It's just time to spice life up with something new.
@@ -27,7 +25,7 @@ I am still getting used to the keyboard shortcuts and getting better. What Helix
27 25
28And it comes us packed with many [really good themes](https://github.com/helix-editor/helix/wiki/Themes). 26And it comes us packed with many [really good themes](https://github.com/helix-editor/helix/wiki/Themes).
29 27
30![Editor](/assets/helix-editor/editor.png) 28![Editor](/helix-editor/editor.png)
31 29
32It's still young but has this mature feeling to it. It has sane defaults and mimics Vim (works a bit differently, but the overall idea is similar). 30It's still young but has this mature feeling to it. It has sane defaults and mimics Vim (works a bit differently, but the overall idea is similar).
33 31
diff --git a/posts/2022-07-05-what-would-dna-sound-if-synthesized.md b/content/posts/2022-07-05-what-would-dna-sound-if-synthesized.md
index aa9081a..c028ec2 100644
--- a/posts/2022-07-05-what-would-dna-sound-if-synthesized.md
+++ b/content/posts/2022-07-05-what-would-dna-sound-if-synthesized.md
@@ -1,12 +1,12 @@
1--- 1---
2Title: What would DNA sound if synthesized to an audio file 2title: What would DNA sound if synthesized to an audio file
3Description: What would DNA sound if synthesized 3url: what-would-dna-sound-if-synthesized.html
4Slug: what-would-dna-sound-if-synthesized 4date: 2022-07-05
5Listing: true 5draft: false
6Created: 2022-07-05
7Tags: []
8--- 6---
9 7
8**Table of contents**
9
101. [Introduction](#introduction) 101. [Introduction](#introduction)
112. [DNA encoding and primer example](#dna-encoding-and-primer-example) 112. [DNA encoding and primer example](#dna-encoding-and-primer-example)
123. [Parsing DNA data](#parsing-dna-data) 123. [Parsing DNA data](#parsing-dna-data)
@@ -145,10 +145,10 @@ sox output.wav -n spectrogram -o spectrogram.png
145An example spectrogram of Ludwig van Beethoven Symphony No. 6 First movement. 145An example spectrogram of Ludwig van Beethoven Symphony No. 6 First movement.
146 146
147<audio controls> 147<audio controls>
148 <source src="/assets/dna-synthesized/symphony-no6-1st-movement.mp3" type="audio/mpeg"> 148 <source src="/dna-synthesized/symphony-no6-1st-movement.mp3" type="audio/mpeg">
149</audio> 149</audio>
150 150
151![Ludwig van Beethoven Symphony No. 6 First movement](/assets/dna-synthesized/symphony-no6-1st-movement.png) 151![Ludwig van Beethoven Symphony No. 6 First movement](/dna-synthesized/symphony-no6-1st-movement.png)
152 152
153The other option could also be in combination with [gnuplot](http://www.gnuplot.info/). This would require an intermediary step, however. 153The other option could also be in combination with [gnuplot](http://www.gnuplot.info/). This would require an intermediary step, however.
154 154
@@ -194,40 +194,40 @@ What I did was take interesting parts from an animal's genome and feed it to a t
194### Niels Bohr quote 194### Niels Bohr quote
195 195
196<audio controls> 196<audio controls>
197 <source src="/assets/dna-synthesized/quote/out.mp3" type="audio/mpeg"> 197 <source src="/dna-synthesized/quote/out.mp3" type="audio/mpeg">
198</audio> 198</audio>
199 199
200![Spectogram](/assets/dna-synthesized/quote/spectogram.png) 200![Spectogram](/dna-synthesized/quote/spectogram.png)
201 201
202### Mouse 202### Mouse
203 203
204This is part of a mouse genome `Mus_musculus.GRCm39.dna.nonchromosomal`. You can get [genom data here](http://ftp.ensembl.org/pub/release-106/fasta/mus_musculus/dna/). 204This is part of a mouse genome `Mus_musculus.GRCm39.dna.nonchromosomal`. You can get [genom data here](http://ftp.ensembl.org/pub/release-106/fasta/mus_musculus/dna/).
205 205
206<audio controls> 206<audio controls>
207 <source src="/assets/dna-synthesized/mouse/out.mp3" type="audio/mpeg"> 207 <source src="/dna-synthesized/mouse/out.mp3" type="audio/mpeg">
208</audio> 208</audio>
209 209
210![Spectogram](/assets/dna-synthesized/mouse/spectogram.png) 210![Spectogram](/dna-synthesized/mouse/spectogram.png)
211 211
212### Bison 212### Bison
213 213
214This is part of a bison genome `Bison_bison_bison.Bison_UMD1.0.cdna`. You can get [genom data here](http://ftp.ensembl.org/pub/release-106/fasta/bison_bison_bison/cdna/). 214This is part of a bison genome `Bison_bison_bison.Bison_UMD1.0.cdna`. You can get [genom data here](http://ftp.ensembl.org/pub/release-106/fasta/bison_bison_bison/cdna/).
215 215
216<audio controls> 216<audio controls>
217 <source src="/assets/dna-synthesized/bison/out.mp3" type="audio/mpeg"> 217 <source src="/dna-synthesized/bison/out.mp3" type="audio/mpeg">
218</audio> 218</audio>
219 219
220![Spectogram](/assets/dna-synthesized/bison/spectogram.png) 220![Spectogram](/dna-synthesized/bison/spectogram.png)
221 221
222### Taurus 222### Taurus
223 223
224This is part of a taurus genome `Bos_taurus.ARS-UCD1.2.cdna`. You can get [genom data here](http://ftp.ensembl.org/pub/release-106/fasta/bos_taurus/cdna/). 224This is part of a taurus genome `Bos_taurus.ARS-UCD1.2.cdna`. You can get [genom data here](http://ftp.ensembl.org/pub/release-106/fasta/bos_taurus/cdna/).
225 225
226<audio controls> 226<audio controls>
227 <source src="/assets/dna-synthesized/taurus/out.mp3" type="audio/mpeg"> 227 <source src="/dna-synthesized/taurus/out.mp3" type="audio/mpeg">
228</audio> 228</audio>
229 229
230![Spectogram](/assets/dna-synthesized/taurus/spectogram.png) 230![Spectogram](/dna-synthesized/taurus/spectogram.png)
231 231
232## Making a drummer out of a DNA sequence 232## Making a drummer out of a DNA sequence
233 233
@@ -235,17 +235,17 @@ To make things even more interesting, I decided to send this data via MIDI to my
235 235
236Elektron is connected to my MacBook via USB cable and audio out is patched to a Sony Bluetooth speaker I have that supports 3.5 mm audio in. Elektron doesn't have internal speakers. 236Elektron is connected to my MacBook via USB cable and audio out is patched to a Sony Bluetooth speaker I have that supports 3.5 mm audio in. Elektron doesn't have internal speakers.
237 237
238![](/assets/dna-synthesized/elektron/IMG_0619.jpg) 238![](/dna-synthesized/elektron/IMG_0619.jpg)
239 239
240![](/assets/dna-synthesized/elektron/IMG_0620.jpg) 240![](/dna-synthesized/elektron/IMG_0620.jpg)
241 241
242![](/assets/dna-synthesized/elektron/IMG_0622.jpg) 242![](/dna-synthesized/elektron/IMG_0622.jpg)
243 243
244For communicating with Elektron, I choose `pygame` Python module that has MIDI built in. With this, it was rather simple to send notes to the device. All I did was map MIDI notes to the actual Nucleotides. 244For communicating with Elektron, I choose `pygame` Python module that has MIDI built in. With this, it was rather simple to send notes to the device. All I did was map MIDI notes to the actual Nucleotides.
245 245
246Before all of this I also checked Audio MIDI Setup app under MacOS and checked MIDI Studio by pressing ⌘-2. 246Before all of this I also checked Audio MIDI Setup app under MacOS and checked MIDI Studio by pressing ⌘-2.
247 247
248![](/assets/dna-synthesized/elektron/midi-studio.jpg) 248![](/dna-synthesized/elektron/midi-studio.jpg)
249 249
250The whole script that parses and send notes to the Elektron looks like this. 250The whole script that parses and send notes to the Elektron looks like this.
251 251
@@ -287,7 +287,7 @@ del player
287pygame.midi.quit() 287pygame.midi.quit()
288``` 288```
289 289
290<video src="/assets/dna-synthesized/elektron/elektron.mp4" controls></video> 290<video src="/dna-synthesized/elektron/elektron.mp4" controls></video>
291 291
292All of this could be made much more interesting if I choose different instruments for different Nucleotides, or doing more funky stuff with Elektron. But for now, this should be enough. It is just a proof of concept. Something to play around with. 292All of this could be made much more interesting if I choose different instruments for different Nucleotides, or doing more funky stuff with Elektron. But for now, this should be enough. It is just a proof of concept. Something to play around with.
293 293
diff --git a/posts/2022-08-13-algae-spotted-on-river-sava.md b/content/posts/2022-08-13-algae-spotted-on-river-sava.md
index dcfc9cd..2a7e6cd 100644
--- a/posts/2022-08-13-algae-spotted-on-river-sava.md
+++ b/content/posts/2022-08-13-algae-spotted-on-river-sava.md
@@ -1,26 +1,24 @@
1--- 1---
2Title: Aerial photography of algae spotted on river Sava 2title: Aerial photography of algae spotted on river Sava
3Description: Aerial photography of algae spotted on river Sava 3url: aerial-photography-of-algae-spotted-on-river-sava.html
4Slug: aerial-photography-of-algae-spotted-on-river-sava 4date: 2022-08-13
5Listing: true 5draft: false
6Created: 2022-08-13
7Tags: []
8--- 6---
9 7
10This is a bit of a different post than I usually write, but quite interesting one to me. River Sava has plenty of hydropower plants located down the stream. This makes regulating the strength of a current easier than normally. Because of lower stream strength and high temperatures, algae has formed on the river. This is the first time I've seen something like this in my whole life. 8This is a bit of a different post than I usually write, but quite interesting one to me. River Sava has plenty of hydropower plants located down the stream. This makes regulating the strength of a current easier than normally. Because of lower stream strength and high temperatures, algae has formed on the river. This is the first time I've seen something like this in my whole life.
11 9
12Below are some photographs taken from a DJI drone capturing the event. 10Below are some photographs taken from a DJI drone capturing the event.
13 11
14![Algae on Sava](/assets/algae-sava/dji-algae-0.jpg) 12![Algae on Sava](/algae-sava/dji-algae-0.jpg)
15 13
16![Algae on Sava](/assets/algae-sava/dji-algae-1.jpg) 14![Algae on Sava](/algae-sava/dji-algae-1.jpg)
17 15
18![Algae on Sava](/assets/algae-sava/dji-algae-2.jpg) 16![Algae on Sava](/algae-sava/dji-algae-2.jpg)
19 17
20![Algae on Sava](/assets/algae-sava/dji-algae-3.jpg) 18![Algae on Sava](/algae-sava/dji-algae-3.jpg)
21 19
22![Algae on Sava](/assets/algae-sava/dji-algae-4.jpg) 20![Algae on Sava](/algae-sava/dji-algae-4.jpg)
23 21
24![Algae on Sava](/assets/algae-sava/dji-algae-5.jpg) 22![Algae on Sava](/algae-sava/dji-algae-5.jpg)
25 23
26I will try to get more photos of this in the future days and if something intriguing shows up will post it again on the blog. 24I will try to get more photos of this in the future days and if something intriguing shows up will post it again on the blog.
diff --git a/data/.gitkeep b/data/.gitkeep
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/data/.gitkeep
diff --git a/layouts/.gitkeep b/layouts/.gitkeep
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/layouts/.gitkeep
diff --git a/static/.gitkeep b/static/.gitkeep
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/static/.gitkeep
diff --git a/assets/algae-sava/dji-algae-0.jpg b/static/algae-sava/dji-algae-0.jpg
index d444c80..d444c80 100644
--- a/assets/algae-sava/dji-algae-0.jpg
+++ b/static/algae-sava/dji-algae-0.jpg
Binary files differ
diff --git a/assets/algae-sava/dji-algae-1.jpg b/static/algae-sava/dji-algae-1.jpg
index 26ee43c..26ee43c 100644
--- a/assets/algae-sava/dji-algae-1.jpg
+++ b/static/algae-sava/dji-algae-1.jpg
Binary files differ
diff --git a/assets/algae-sava/dji-algae-2.jpg b/static/algae-sava/dji-algae-2.jpg
index d38f8cd..d38f8cd 100644
--- a/assets/algae-sava/dji-algae-2.jpg
+++ b/static/algae-sava/dji-algae-2.jpg
Binary files differ
diff --git a/assets/algae-sava/dji-algae-3.jpg b/static/algae-sava/dji-algae-3.jpg
index 9706fa0..9706fa0 100644
--- a/assets/algae-sava/dji-algae-3.jpg
+++ b/static/algae-sava/dji-algae-3.jpg
Binary files differ
diff --git a/assets/algae-sava/dji-algae-4.jpg b/static/algae-sava/dji-algae-4.jpg
index b0db4a2..b0db4a2 100644
--- a/assets/algae-sava/dji-algae-4.jpg
+++ b/static/algae-sava/dji-algae-4.jpg
Binary files differ
diff --git a/assets/algae-sava/dji-algae-5.jpg b/static/algae-sava/dji-algae-5.jpg
index f3c1b3b..f3c1b3b 100644
--- a/assets/algae-sava/dji-algae-5.jpg
+++ b/static/algae-sava/dji-algae-5.jpg
Binary files differ
diff --git a/assets/cv/avatar.gif b/static/cv/avatar.gif
index 82e5f39..82e5f39 100644
--- a/assets/cv/avatar.gif
+++ b/static/cv/avatar.gif
Binary files differ
diff --git a/assets/dfd-rice/desktop.png b/static/dfd-rice/desktop.png
index 8dcfd51..8dcfd51 100644
--- a/assets/dfd-rice/desktop.png
+++ b/static/dfd-rice/desktop.png
Binary files differ
diff --git a/assets/dfd-rice/install-00.png b/static/dfd-rice/install-00.png
index 2660f90..2660f90 100644
--- a/assets/dfd-rice/install-00.png
+++ b/static/dfd-rice/install-00.png
Binary files differ
diff --git a/assets/dfd-rice/install-01.png b/static/dfd-rice/install-01.png
index 1281be1..1281be1 100644
--- a/assets/dfd-rice/install-01.png
+++ b/static/dfd-rice/install-01.png
Binary files differ
diff --git a/assets/dfd-rice/install-02.png b/static/dfd-rice/install-02.png
index 9cac5e3..9cac5e3 100644
--- a/assets/dfd-rice/install-02.png
+++ b/static/dfd-rice/install-02.png
Binary files differ
diff --git a/assets/dfd-rice/install-03.png b/static/dfd-rice/install-03.png
index dc7cbd1..dc7cbd1 100644
--- a/assets/dfd-rice/install-03.png
+++ b/static/dfd-rice/install-03.png
Binary files differ
diff --git a/assets/dfd-rice/install-04.png b/static/dfd-rice/install-04.png
index 675a78f..675a78f 100644
--- a/assets/dfd-rice/install-04.png
+++ b/static/dfd-rice/install-04.png
Binary files differ
diff --git a/assets/dfd-rice/install-05.png b/static/dfd-rice/install-05.png
index 8b580b9..8b580b9 100644
--- a/assets/dfd-rice/install-05.png
+++ b/static/dfd-rice/install-05.png
Binary files differ
diff --git a/assets/dfd-rice/installation.svg b/static/dfd-rice/installation.svg
index 200b71b..bb9560b 100644
--- a/assets/dfd-rice/installation.svg
+++ b/static/dfd-rice/installation.svg
@@ -1,55 +1,12 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!-- Created with Inkscape (http://www.inkscape.org/) --> 2<!-- Created with Inkscape (http://www.inkscape.org/) -->
3 3
4<svg 4<svg width="210mm" height="297mm" viewBox="0 0 210 297" version="1.1" id="svg5" inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)" sodipodi:docname="installation.svg" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
5 width="210mm" 5 <sodipodi:namedview id="namedview7" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageshadow="2" inkscape:pageopacity="0.0" inkscape:pagecheckerboard="0" inkscape:document-units="mm" showgrid="false" inkscape:zoom="0.093984989" inkscape:cx="-883.11975" inkscape:cy="1877.9595" inkscape:window-width="1462" inkscape:window-height="940" inkscape:window-x="1725" inkscape:window-y="74" inkscape:window-maximized="0" inkscape:current-layer="layer1" />
6 height="297mm" 6 <defs id="defs2" />
7 viewBox="0 0 210 297" 7 <g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1">
8 version="1.1" 8 <g id="g368" transform="translate(76.329351,109.97993)" inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/dfd-rice/install-01.png" inkscape:export-xdpi="75" inkscape:export-ydpi="75">
9 id="svg5" 9 <image width="169.33334" height="127" preserveAspectRatio="none" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAIAAAAVFBUnAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAd
10 inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)"
11 sodipodi:docname="installation.svg"
12 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
13 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
14 xmlns:xlink="http://www.w3.org/1999/xlink"
15 xmlns="http://www.w3.org/2000/svg"
16 xmlns:svg="http://www.w3.org/2000/svg">
17 <sodipodi:namedview
18 id="namedview7"
19 pagecolor="#ffffff"
20 bordercolor="#666666"
21 borderopacity="1.0"
22 inkscape:pageshadow="2"
23 inkscape:pageopacity="0.0"
24 inkscape:pagecheckerboard="0"
25 inkscape:document-units="mm"
26 showgrid="false"
27 inkscape:zoom="0.093984989"
28 inkscape:cx="-883.11975"
29 inkscape:cy="1877.9595"
30 inkscape:window-width="1462"
31 inkscape:window-height="940"
32 inkscape:window-x="1725"
33 inkscape:window-y="74"
34 inkscape:window-maximized="0"
35 inkscape:current-layer="layer1" />
36 <defs
37 id="defs2" />
38 <g
39 inkscape:label="Layer 1"
40 inkscape:groupmode="layer"
41 id="layer1">
42 <g
43 id="g368"
44 transform="translate(76.329351,109.97993)"
45 inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/assets/dfd-rice/install-01.png"
46 inkscape:export-xdpi="75"
47 inkscape:export-ydpi="75">
48 <image
49 width="169.33334"
50 height="127"
51 preserveAspectRatio="none"
52 xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAIAAAAVFBUnAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAd
53X0lEQVR4nO3dvbqjOKIFUNf9KujHm9CP6HAeb4IJbnCm3RQ/sgQbI2CtrwMXxpIQAvYR2P3r8Xg9 10X0lEQVR4nO3dvbqjOKIFUNf9KujHm9CP6HAeb4IJbnCm3RQ/sgQbI2CtrwMXxpIQAvYR2P3r8Xg9
54AADI+b+jGwAAcDUCFgBAmIAFABAmYAEAhAlYAABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUA 11AADI+b+jGwAAcDUCFgBAmIAFABAmYAEAhAlYAABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUA
55ECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlYAABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUA 12ECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlYAABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUA
@@ -183,18 +140,8 @@ WKfD+4N//f73dKv/899/NfXDbAmZ9q2yop9n++FAO+2XY3U4/vfW27hqdfb2A8f644dGV5xNKrPF
183n9FFtLy95X6ePumy9355TK6dNVVsb+eW/VIzHpba+VjYX631LpUfPL6ajovC9ja1s6Yxle0HmPr1 140n9FFtLy95X6ePumy9355TK6dNVVsb+eW/VIzHpba+VjYX631LpUfPL6ajovC9ja1s6Yxle0HmPr1
184eLyObkNf9ptsu+FNoiC9B0CXnrNL/c+ex1zF+2S/AAAAAAAAAAAAAAAAAAAAAAAAAAAU/T9NrMo+ 141eLyObkNf9ptsu+FNoiC9B0CXnrNL/c+ex1zF+2S/AAAAAAAAAAAAAAAAAAAAAAAAAAAU/T9NrMo+
185adlPnAAAAABJRU5ErkJggg== 142adlPnAAAAABJRU5ErkJggg==
186" 143" id="image41" x="-234.20293" y="-199.01341" inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/dfd-rice/install-01.png" inkscape:export-xdpi="75" inkscape:export-ydpi="75" />
187 id="image41" 144 <image width="169.33334" height="127" preserveAspectRatio="none" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAIAAAAVFBUnAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAg
188 x="-234.20293"
189 y="-199.01341"
190 inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/assets/dfd-rice/install-01.png"
191 inkscape:export-xdpi="75"
192 inkscape:export-ydpi="75" />
193 <image
194 width="169.33334"
195 height="127"
196 preserveAspectRatio="none"
197 xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAIAAAAVFBUnAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAg
198AElEQVR4nO3dzZKjuLYGUPJGDfrxeuhH9PA83hn04A582kUBkiWxBQKvFR0dLieWNuLvS8DkzzQ9 145AElEQVR4nO3dzZKjuLYGUPJGDfrxeuhH9PA83hn04A582kUBkiWxBQKvFR0dLieWNuLvS8DkzzQ9
199JwAA4vzf2QUAANyNgAUAEEzAAgAIJmABAAQTsAAAgglYAADBBCwAgGACFgBAMAELACCYgAUAEEzA 146JwAA4vzf2QUAANyNgAUAEEzAAgAIJmABAAQTsAAAgglYAADBBCwAgGACFgBAMAELACCYgAUAEEzA
200AgAIJmABAAQTsAAAgglYAADBBCwAgGACFgBAMAELACCYgAUAEEzAAgAIJmABAAQTsAAAgglYAADB 147AgAIJmABAAQTsAAAgglYAADBBCwAgGACFgBAMAELACCYgAUAEEzAAgAIJmABAAQTsAAAgglYAADB
@@ -361,25 +308,10 @@ vqGvBoHrYdRyPMvV6wdG8Ps5WOX3arQZ8PrgX7/+s57r//7zd9U4bLYQU1+ThnHeHIcTdVou5xpw
361v/791lXmZur1+KTGs7b+2nFuGJ/FQTQ/v/lxXt/p0nu5TKtjZ0kX++vcs1xK1odUnVNiedX2m2o/ 308v/791lXmZur1+KTGs7b+2nFuGJ/FQTQ/v/lxXt/p0nu5TKtjZ0kX++vcs1xK1odUnVNiedX2m2o/
362cPuq2i4y81tVZ0kxhfUDrP1M0/PsGsbS72TbF14kCmT0ABjSY/Ndf+x5yVF8TJYLAAAAAAAAAAAA 309cPuq2i4y81tVZ0kxhfUDrP1M0/PsGsbS72TbF14kCmT0ABjSY/Ndf+x5yVF8TJYLAAAAAAAAAAAA
363AAAAAAAAAAAAAEDW/wMXMWZMdK+KTQAAAABJRU5ErkJggg== 310AAAAAAAAAAAAAEDW/wMXMWZMdK+KTQAAAABJRU5ErkJggg==
364" 311" id="image69" x="-64.869583" y="-199.01341" inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/dfd-rice/install-01.png" inkscape:export-xdpi="75" inkscape:export-ydpi="75" />
365 id="image69" 312 </g>
366 x="-64.869583" 313 <g id="g372" inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/dfd-rice/install-02.png" inkscape:export-xdpi="75" inkscape:export-ydpi="75" transform="translate(407.41482,-79.959051)">
367 y="-199.01341" 314 <image width="169.33334" height="127" preserveAspectRatio="none" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAIAAAAVFBUnAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAO
368 inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/assets/dfd-rice/install-01.png"
369 inkscape:export-xdpi="75"
370 inkscape:export-ydpi="75" />
371 </g>
372 <g
373 id="g372"
374 inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/assets/dfd-rice/install-02.png"
375 inkscape:export-xdpi="75"
376 inkscape:export-ydpi="75"
377 transform="translate(407.41482,-79.959051)">
378 <image
379 width="169.33334"
380 height="127"
381 preserveAspectRatio="none"
382 xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAIAAAAVFBUnAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAO
383fElEQVR4nO3dwXaqZgNAUdOVQR+vQx6RYR+vgw7+Qbr8jQqCHoWYvVcHXoJ8BJPLuR9oPw6H8QAA 315fElEQVR4nO3dwXaqZgNAUdOVQR+vQx6RYR+vgw7+Qbr8jQqCHoWYvVcHXoJ8BJPLuR9oPw6H8QAA
384QOePrXcAAODdCCwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwA 316QOePrXcAAODdCCwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwA
385gJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjA 317gJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjA
@@ -446,18 +378,8 @@ FgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBA
446TGABAMQEFgBATGABAMQEFgBA7HPrHQAA+LmGq0vNYAEAxAQWAEBMYAEAxAQWAEBMYAEAxAQWAEBM 378TGABAMQEFgBATGABAMQEFgBA7HPrHQAA+LmGq0vNYAEAxAQWAEBMYAEAxAQWAEBMYAEAxAQWAEBM
447YAEAxAQWAEBMYAEAxAQWAEBMYAEAxAQWAEBMYAEAxAQWAEBMYAEAAAAAAAAAAAAAAAAAAAAAAAAA 379YAEAxAQWAEBMYAEAxAQWAEBMYAEAxAQWAEBMYAEAxAQWAEBMYAEAAAAAAAAAAAAAAAAAAAAAAAAA
448wBv4H+xMBAXacnSYAAAAAElFTkSuQmCC 380wBv4H+xMBAXacnSYAAAAAElFTkSuQmCC
449" 381" id="image81" x="-565.28839" y="184.09018" inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/dfd-rice/install-02.png" inkscape:export-xdpi="75" inkscape:export-ydpi="75" />
450 id="image81" 382 <image width="169.33333" height="127" preserveAspectRatio="none" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAIAAAAVFBUnAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAg
451 x="-565.28839"
452 y="184.09018"
453 inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/assets/dfd-rice/install-02.png"
454 inkscape:export-xdpi="75"
455 inkscape:export-ydpi="75" />
456 <image
457 width="169.33333"
458 height="127"
459 preserveAspectRatio="none"
460 xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAIAAAAVFBUnAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAg
461AElEQVR4nO3dwbKjOLYFUOeLHPTn9dCf6GF/Xg968Aa3ykUaJEuwAWGvFR0dTl8sHQSIbbBdv263 383AElEQVR4nO3dwbKjOLYFUOeLHPTn9dCf6GF/Xg968Aa3ykUaJEuwAWGvFR0dTl8sHQSIbbBdv263
462xw0AgJz/O7sAAIBPI2ABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlY 384xw0AgJz/O7sAAIBPI2ABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlY
463AABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlY 385AABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlY
@@ -626,54 +548,14 @@ DS33VqbnrZdz2Muffh6k0tW8r3XL97bTXtu//v7WVeXD1PPxKY1nb/2947xifF5OovX1rY/z/JMu
626e2+X2+zc2dLF9jq3bJeW/aFU562wvXr7LbUfPL66jovK+nbV2VJMY/0Ac79ut8fZNYxlv4ttX3iT 548e2+X2+zc2dLF9jq3bJeW/aFU562wvXr7LbUfPL66jovK+nbV2VJMY/0Ac79ut8fZNYxlv4ttX3iT
627KMjoATCk++Kz/mPPr5zFx2S7AAAAAAAAAAAAAAAAAAAAAAAAAABU/T+x9xtLJOr2IAAAAABJRU5E 549KMjoATCk++Kz/mPPr5zFx2S7AAAAAAAAAAAAAAAAAAAAAAAAAABU/T+x9xtLJOr2IAAAAABJRU5E
628rkJggg== 550rkJggg==
629" 551" id="image93" x="-395.95505" y="184.09018" inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/dfd-rice/install-02.png" inkscape:export-xdpi="75" inkscape:export-ydpi="75" />
630 id="image93" 552 </g>
631 x="-395.95505" 553 <g id="g364" inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/dfd-rice/install-00.png" inkscape:export-xdpi="75" inkscape:export-ydpi="75" transform="translate(456.74601,90.184622)">
632 y="184.09018" 554 <image width="169.33333" height="127" preserveAspectRatio="none" xlink:href="data:image/png;base64,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 " id="image17-3" x="-614.61957" y="-372.38272" inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/dfd-rice/install-00.png" inkscape:export-xdpi="75" inkscape:export-ydpi="75" />
633 inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/assets/dfd-rice/install-02.png" 555 <image width="169.33334" height="127" preserveAspectRatio="none" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAIAAAAVFBUnAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAP jElEQVR4nO3dwZai2gFAUTurBvm8DP1Eh/m8DDLIoFZ8PgQK8KBo7b0yqK5GuIIt513Q/DmdLicA ADr/ePUAAAA+jcACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMAC AIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJ LACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACA mMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMAC AIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJ LACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACA mMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMAC AIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJ LACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACA mMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMAC AIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJ LACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACA mMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMAC AIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJ LACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACA mMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMAC AIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJ LACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACA mMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACA2Nfa B1wuewwDjut8Pl+87vmtvP75bc7nZj1msAAAYgILACAmsODY7merq/nrbaa2/vg4X/u8AFICCyL6 YIlX7aXz+XcdoF/1ZOGQBBa8m213HD//jLt2nLveSe02beC5Vn+KEFjtNm5uz/Q//v4+C77/arDw 5TL+kJn1bBvnYD1rxzn1V/O/HGxiyfMdHdJyq47X7Uhun8XacVbLz+znav8ACzwUWGez0PCj7xPh /R+X/P7+n9jtOXV0E1Pr+fGEunY8a8c5+qxnlp8az9TPM8uvsvZ4ne6e2vwhCJ/X6M9T+/mB/eOt nt8g/zqSR2ewfD8KH2+vs8uSfzujObVtVclKpsazcJyVqUR72rZ2euwzL6queaz3eT7eHu/zLhHC 6xxtYuBo41nr3cc/JXlegyuYwM4EFrzI/SWb1tQNPa8az97effwzqiS6Xj0M1wlMEFjw0ZxHGZi/ GQ6I+JoGOIDl3965Yc0bvgJq7XiONl0UjueRVe2xWzav82jHCD6dGSzojH5ubnAD+O1Hz+4/4T/z 8+36l1zlWfupsbXj2TbO0TuBRpef2m9rxz8/nvn1nCaO15Lx3A9p23o2bPc0tp+3rQfY6s/ptO6f 2d/fFf2/rPP53vV1Xn1tAdt8yg5/19c/rHH7Oq9me81gwYcyYwHwOgILfvDG//n+viP/AJ+y89/4 9Q8bTU1hrfu34CZ3AICYwAIAiAksAICYwAIAiAksAICYwAIAiAksAICYwAIAiAksAICYwAIAiAks AICYwAIAiAksAICYwAIAiAksAIDY1+5bOJ933wRwbOfT5dVDAH6py4vefsxgAQDEBBYAQExgAQDE BBZwFP/5778Gf7z+7/73U48COIL9b3IHWOC+ov759e/7Pw5+GCwGcBBmsIDX00nAhzGDBbzYqrr6 nrW6/iDLgGMSWMArTUXSNaSufxz8rK6AIxNYwBFN3YMF8BYEFvBig48ELgmp6x3up79PbgEchMAC XmnDNNXg84Mmt4AD8ilCAICYGSzgiKZucr/OV7lECByZwAKOYpBKU58unF8A4AhcIgQAiO0/g3W5 7L4J4Ni8CwC/jRksAICYwAIAiAksAICYwAIAiAksAICYwAIAiAksAICYwAIAiAksAICYwAIAiAks AICYwAIAiAksAICYwAIAiAksAICYwAIAiAksAICYwAIAiH1UYJ3P50OtZ+0mzufzEzY95YWbZsbe x+V+/V4JAI/7esI2Bu/Xl8tl4aMWLvkZ3uX5fh/NPYZ6f15/5KWydpyrlr8d6pOP2nXTo9t9l1cR wMd7RmCd/n4y2O8cUK1223pWPa/3PQteLpf9Zjg27JapucDvVS08KKuWHyzzzKaZ31Z1XN73xQlw HE8KrCmjMwHXXw4mFb7PLlP/BT86AzG1/pkT5P16ZrY7P50wZflkyaqZktvB3O+60fVMPam1AfHj +peMf4PBobn95XWjP45/7fLbxnn9+f6gzByv5QdidFf8OJ7HZ/4AGPXKwJo6kc/MJdz+crDA/Il2 aoX3Rs9So9udGcyqTcwH5arxDwZ2PemOrmcw/oWDv7dk/QvHv9ZbdMDMfvjxeC0PplUXQ2fWv+sM JcDv8aTAqmYyXnVC3XW7Cy9O7T2GvU+r+Yzdq6zdVw++4Edb/DQd4o+sH4DKU+/Buj8TPPLmvvaE ffvAtffovMT9laNvm28G38/Mfj4tHv/9Yq99XjP7efQy6Mzye9wdteTS58zDAdjVUy8R3l+u2vsd /2mzPjtt6FqBp4mz+0FMDeldxj9q7Tinlh+9ya81mOUaDVYAnunFN7l/gCecxo4/2Tbv3cd/cHvf 6AbABs/+otGZez72vhdkcP/K+XxOzkbn/3twPaNrzte5dlsbxjBzyWzbGK5/u3CFt6+x0avSg/XM L//jmNcuv3zhDcuv5QYsgJ28cgZrEFuDE9XUHTyjRj+IN7/+5euZWXjXyYMN41+1nsElzh9/Pq3c z2vHHx6vVS+eDcuvujQ8sz9XLb/H62HJ8QVggz+n09obTf76+Zdfj1gbWG9xZz0A/DbLvh9n3Ynb PVjbbZ6hUVcA8NkE1kOqD5oBAJ/k2Te5AwB8PIEFABATWAAAMYEFABATWAAAMYEFABATWAAAMYEF ABATWAAAMYEFABATWAAAMYEFABATWAAAMYEFABATWAAAMYEFABATWAAAMYEFABATWAAAMYEFABAT WAAAMYEFABD7evDx5/M5GQcAwMd4KLAul0s1DgCAj+ESIQBATGABAMQEFgBATGABAMQEFgBATGAB AMQEFgBA7M/pVH2XlW8cBQA+1bpeMoMFABATWAAAMYEFABATWAAAMYEFABATWAAAMYEFABATWAAA MYEFABATWAAAMYEFABATWAAAMYEFABATWAAAMYEFABD7czpdXj0GAICPYgYLACAmsAAAYgILACAm sAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAA YgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgIL ACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAm sAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAA YgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgIL ACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAm sAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAA YgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgIL ACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAm sAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAA YgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgIL ACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAm sAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAA YgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgIL ACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAm sAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAA YgILACD29eoBAAC8r/Pob81gAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDE BBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQAAAAAAAAAAAAAAAAAAAAAAAADAB/gfm8Fj1ALsE0sA AAAASUVORK5CYII= " id="image29-6" x="-445.28625" y="-372.38272" inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/dfd-rice/install-00.png" inkscape:export-xdpi="75" inkscape:export-ydpi="75" />
634 inkscape:export-xdpi="75" 556 </g>
635 inkscape:export-ydpi="75" /> 557 <g id="g513" transform="translate(1043.4871,32.342183)" inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/dfd-rice/install-03.png" inkscape:export-xdpi="75" inkscape:export-ydpi="75">
636 </g> 558 <image width="169.38" height="127.035" preserveAspectRatio="none" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAIAAAAVFBUnAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAg
637 <g
638 id="g364"
639 inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/assets/dfd-rice/install-00.png"
640 inkscape:export-xdpi="75"
641 inkscape:export-ydpi="75"
642 transform="translate(456.74601,90.184622)">
643 <image
644 width="169.33333"
645 height="127"
646 preserveAspectRatio="none"
647 xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAIAAAC6s0uzAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAg AElEQVR4nO2dd9gkR3Xu3+qe8IXdlVa7LELSLgIktAoEgUVYAQZhkgkm2GCiBNjgAPc64XSxTboX uDbGBmwTbEuYiwk2GGzAYGwBRrsIRBAiCSEJpRXKu9r4hZmu+0fN1FTH6Z5O1T3v79Gzmq+np/t0 qrfPqVN1hFg4CwHWhxh6wYXzhQBkMVvqdyDEaJPTd5pqmY/FHnqdmJ9M32VZuA5OvVfSCoMhvnIV 1odVGUQIIdbhRCzruehELZ8bihSu1QG8grQ8kqNrFsqYWOhNWeP6Oyw0mxBCqiRGaLsuum61llhE wYK5Vr4G2xaxWOgmfbs6wE13VGUKIYRYSryn23HmWIOL1su1QYkaKSWOrEKWqfEZkYuJAvzjWzG0 yFpCCKmFxFBzx0VvbjW4aNbK7Fn3JA6tFv7aMCNCYLEf++2RVfxkX4XWEEKIpUzr63XdYI7PfFBK /tLaEIPyNNgTR1bK2ngWxEIXbvx9dfWttrwoEEJIraRItnKdOdTgsjRifYhBWclHcuCJI2slbTyD GcsLsd8dOII7DlRoCyGE2Eu6bGfXQX/uNLgs1r3yEoDl+kCsDEraeFqW4+PPP7qlQjsIIcRqUg83 Uhpc38jSVjEoU4NX1rBanwY7DuLGIN1xAHcfqdYaQgixlyzjfV0H/e78aHC5B1qmBuPoGtbrGZgk lvvRJ05KXHNr1dYQQojFZJxwwxHzo8GlpwoNPKyV5qoeWa1lcLDcGNMB/JP9OLxarS2EEGI12We8 cgQWujP8rpmUrMJDibVBKTuREodXy50AJIzjYEOUAHserrutUksIIcR6ZhJSIdDvzY0Gl0x5Gux5 4vBKlRN0iOU+nKjb4sY7sbJemRmEENIIZlVRAfR7cFoejK7o8DyJtUEZ3rYceqLCwK/ctBSxdDDE DZx4khBCguRwYwWw0G23BsvKurs9idVBGd6qHAzFkUo02HGwIWoA0nW3s+4CIYSEyR1HXujCbbMG V4fyg8vQ4LVBBRFgsXFhVHjRZHUde+8se9eEENJEiujI7SdOPdhwKn258CRW10vptV1ZKzHjGkBc /Pla1l0ghJBoChLOfmfOSwgXhkRZGnx0rbxZMNHrREyAdXgVt+wva4+EENJwilPNXjs1uAb3baTB RY/iHQ1MKmdw8ObliIXX3MK6C4QQEkehktnvznEJ4UKRwMqgeLGUqmph0aroCGwKCfD+w7jjYME7 IoSQFlG0z9rrtK90Um05ZquD4mez8jxxqODBwWLTUkQiHieeJISQREoIGnfntIRwKZSgwYUPDpbH htzf21l3gRBCplBOr227NLjmfszVAQZFa3Bxg4PFUh8LXf/WJa7lxJOEEDKF0tKmui5LCBfGWgka XNDgYLl1Y3DRT/bj8Er+LRNCSLspM2+54wZ9o8ZS/1Qja4Pi55NaXc85OFgs9rDkH33kefgx3V9C CJlOyQOHXKcdGmzFaJr1YcEaLCWOruXxreXWTcFFN9yJVdZdIISQ6ZQ/crfjYHFeSgiXzvoQa0Vr 8OGV2cY7iYVecPIN1l0ghJDUVDJ1hutgoUcNLobBsOBJJWcdHBzR+/vj20ucbIsQQtpFVXNXuQ4W m63BFtk+8ArWYDU4OEugXSz2sWHBt2iFdRcIISQDFU4e6Qgs9qrcYbFY0Q2sGXhYLVKD5dAThzIM TJLbQu7vtbfCs+skEUKIzVSrh46DxX5zNdguhkVr8GAojqbSYLFpCYv+3t9DK7j17gKNIYSQ1lO5 GAqBxT4ciwK6DWboFVvoV64OpucwCyci+fmaW0up4EQIIe2lDm9UCCz1ImYPth4bLfYkVtaLjI+v TBkcLDYvo+cvubH/MO5k3QVCCMlGXeFggcU+3IYFoy118TxZZAnh5MHBriu3hHp/WXeBEEKyU6sE LvZaWUK4BgrX4LjBwds2BUMXt93NuguEEDIDdevfAjW4IDxgZb2wPOSowcFiqY9jlvyrgRNPEkLI bNQtfgJY7KHrTl/TDmzsBtZIYLU4DQ4MDnYcefzm4Do334VCKxsSQsj8ULcAKxa6wbweW7G0G1gz 0uBiSifJoScOr43+2LoxeI2GrLtACCGzY4cAA+h321RCuE4ksDIoTIPXB+LoqljoYvOG4Hc33lHw hFyEEDJPWCPAAPodlhAujAI1eG0oF0LlNNYHuMGuiSet7h0ghJAQNgkwgF7H/vKFjWnoVwYYFqHB Cz3cfRQH/KnO9tVdsL13gBBC/FgmwAB6Lhat1mAJNEaFVwd5yv0CEB0X/Q6kxE/2T/KtVtZx810F mEcIIXOMfQIMoGu7BjfJ3VrLocHCkUu90Wcpsfeu0USV19xiZ92FhrwWEUIIALiisy24TER8StW2 iaiVhPm/0ArhX6glrgPXwbpdQc6mMvQgxCzzby/30TEyn9UEHS5wtaXJzxRgQkiDsNIDVnRcLFla QthKoxJZG2R9mxH9bsT47PWh+P7N1tZdkPofQgixHosFGEDHwVLfQrlrZBu/Pkw/akh0OnKxF/HF 6kAeXYtYbhH23S6EEBKF3QIMwLVUgxupwgMvlQY7Qi7F9MEfsH3aZxvvFEIIicJ6AQbgOlhesM/S Zjb1UzVYCCwtwIk63UfX7O+Vb1KOOiFkvrFO1qJxlCpY1LBaZEpWBh5W4zU4rjyGBA4eLc+oQilm BhJCCCmVhggwAEdguW+PBjcwAG0w9EYDivyIXvxkZEdWcw4prgzR5LcjQsj80BwBBiAENvTh2mNz kxv6ocSKT4NFx5VL/eiVpWyO+0sIIc3AHjFLicByzxINFg13g+FNNFi4jlyOUV9AHlq1c+aNSBpj KCFkvrFCyTIisNyP7qesmiZ7wAqlwULI5YXoeVSgCwM3C6owIcR2bJCx7AhgqR8xTUS1SMg2NPSe xMpakoN7cMXamTfiYDcwIcR+minAUBrcC5aIr8eO5jOUuONAdHWjoYcjqxHL7aZh7wuEkLmksQIM AAKLPfTqLCHcCvkFAHgSdxyMGCJ84CjVjBBCyqDRAoyRBseNnCGZ8CTuOuzT4PUBbJ94khBCmkrT BRgAsNDDQj3lC9vmHHoe7jw4mabjQONyrya0JzhBCGkprRBgAP0uIosHkKxI4K5DWFnD6nrkZB1N oW3vRoSQ1tGi4G2vAwEcqTpkKtrX1kuJuw5bMtiaEELaSrsa2V4HS1X7wW1TX82wGRNPJsAoNCHE ZtolwAB6HcTP6DT3zJcktfbdiBDSClonwAC6LjYszJnWpISSRAghttBGAQbQcbBcnQZT6wkhhGSl pQIMoONU5gdLiz1LAcyz48t3I0KItbRXgAG4DjYuVHKIlrbz4wxtS82rgPl99SCEWE+rBRiA42DD Ipx5VKAWjo8ihJAW0XYBBuAIbFyAW64GW6jwVF+FhZeGEEIwFwIMQAhsWCx1ZgmqnbXw0hBC7GQ+ BBiAA2xcQKflxysoN4QQ0hAc0XZNmiAENrRZgwUgGXAlhJCG4MiFrqi1pG6lKA3uuaVsu4yNZoHO bxy1XxpCCAnjAEL2OljozkszJQSWS9HguvSPYeep8AQRQixkHI/tuFjqifkpgLO8gH5L/H6GnQkh pIkYius4cqkvuqWEZ21kqY+FBmswVTcTPF2EENsIurxyoYeF3ry0V0t9LBZZvrCys8ZJNrLC00UI sY2omHPXxXJfOPMRjl7sFlhCuIJ5H8VkR4QQQhpMjMo6Qi730e9Wa0xNLHSxVGAJ4XLFsdU9vi0+ NEIICZLo5qri9vMwkfJCF8sFanDxGNegtd5v2encc3AfE0KaxLQ4s+tguS/akjCcRL+DDQv5N1NC Ky/RYtU1KPsY5+EcEkIaRIqOXiFkv4vlfvsHKfU62Ji3hHAJrTw9N0IIaSGpNdV15PICFnsQrZbh bgEaXAgWmFAjZTmr831WCSF2kVFNux1sWGj51JWdDjYu5qlSkbOVZ54zhZIQMg9k1xkBudjDhkXR ba8Md1xsXKq+UhSlt2yk/ocQQupmVpFxhVzqYcOC6LR05izXwaal2TLAZ2jgKb1hSvOC6V4TQqzA wcr67L/uuHLDApYXSq11XxuOg02LcCuYWENSesPIcqSS8ksIsQRXrB2L9SG6Lhxn1DhNmigx+SyM LyYLBQC4DvpddFzhyQgpEeb/Qq1fuDkUgU9RDaYIrhq7Nd9XCevHmSfQ72J9mFUi07TyIvIj8VPO qeEJJ4TUjyuwFZ7Eyjo8D70OhMgswArHkGHPkKtGCzAAR6DfwfrQd1DTSG7glddLGSCEkHnGFdg6 +jjwsLIOIdBxJwqXXoDVn46DfgfdjpCA9IyVGyvAYuwHD7JpcLQJ/hNKaoGnnhBiA4YAA5DA2gBr 63BduM4sAqy+dQR6HfS7EA48DxLNFmD1b292DabLaxW8DIQQG/ALsEJFpIceOg50TaRMAqz/7Ljo 9yLi0pOfJCyxSYDVh34XQw9DL343vt+J4AJCCCFkRJQAKwYejq5h6KHrwhGzCLD6Q4yztBY6cISQ kT3EiFpimQAr+h14UzRYb4u5zYQQQuKIF2DFwMORNXgS3c5kUGxWAVYfHKDTQb+Lflc4AiplunEC DKXBEoOgBtPDrYCiTjIvFiGkdqYJsGIwxNFVeB66/jTpTAKsJdAR6LpY6KHfhesIiBif2FYBFkCv AwkMhoAUbMyrhaebENIO0gmwYn2Iw6u+vuHZBNj0ibsd9LtY7KLTEY4QMEcS2yrAriP6XRy3Ab0O Dq3G75JSURY8sYSQFpB9Puejazi6hoUOlhaw0C3GCiHQ60hVdVhKDIZi3cNgINeHxWw/N6LbQb8r ey76XXRdCQACGxfRdXHjnXG/Yh9wSfDEEkJagBA4bfZf91xsWJzI8BQPWAY9YEjDhxYhL1QAUmUd i4GHoScHw9GgplI8YGOYUMcRnQ66jux20HHQ60A4EIFfjY/lrkO4/vZ4TeDoI0thlhwhpF7yVTRa G+KuQ+g4WOpjqV/KtMkdFx1X9nW4W2IoMfTgecIbybOUElLCQ7YW1RFwHOEKNehZug46DlwHHReO kFqSpx7TcRsgBK67jc15s+DlIoTUSz4POEC/g+UFLPZ8nmVOD1ivYPY3C/9PzKXSgxxXN9A/UenW aqIuAWPWa9OrlX4PPiDAgTlJ4D8W4MBRXHtreKyziE71JoQQMu8UKsAK18FyH8t9/1xalQhweAs+ 1RTG58A2cwswBA6t4JqfYEjPqjEwCk0IqZEsWdApkRKrAxxaweo6pFQR3egsaGCaAKNCAUZIgJFN gPsdbFzC/sM5p4wmWWGEgRDSREoQYM3Qw8o6Dq5gbQAAHTdC4dokwALodXDMIvZRg6uGGkwIaRxl CrBGzWp58CjWBpASrjPyidE6AQbQ6+DYJew/oqerpDZUA88zIaRZVCLAmsFwpMRqlmkBuM5YBdsi wALouNi8jP2HxxpMabAXXhtCSF1UK8CaoYfVdRxaxcGjWF2HJ+EIuMKvqY0VYACugy0bcfcRDGyZ S2RuoKQSQppBTQKskcD62C0+cBSr66MiB67uMG6mAANwHGzZgANHYc18XoQQQuwh30QcxeJJHFnD kTUAEEC/i34HPfVvJzjvtLUMPRxdw+EVHF7DkVWsrAMQHO5iMbw6hJBasEmATSSwso6VtYmj2e2g 1xlJcs9Ft2NFrHEwxOoAK2ujf1fWsboebs7ZvtsMrw4hpBZsFeAAElgbYG2AQ8bCjoNuB10XXRdq 0uaOi44L1ylYmyUwGGB9iPUhBgOsDTEYYm2AlbVwVWBiCfRrCSGW0xABjmTgYbCGo1HVDlw1q7Mz yrJ21H8OhIAQI4X2jNKHagOehJpfejzLNDwPQ48q20QkNZgQYjdNFuAElHyu6b/TlCQqt2wRxaB6 0mswrw4hpHqcug2YF0YlhEm1pJRVqi8hpHoowFUiQx9INfDVhxBiHRTgKgkOJSZVMf2Nh5eEEFIx FODSMVp2Gb2YVETSOWdQghBSMRTgUhgPXpaIadkFG/wa4DknhFgEBbgwzKkp5eifWJdLUgzqgGEH Qog9UIDz4JseU+p/0v22aGPIdJKHmvGSEEKqxHIBTtMkVrlOYD2Zx41lc18LCRrMoAQhpEosF2Bb GDfZEhBsppsOryAhxAYowLEIw1UypqwsrPVmN7CFMCxBCKkMCrCPgOiWrJCWnHy+BxBCSA1YogE1 oyPM5YuuibTD32pKpeWS8B09X0YIIZUxvwIcSmBG9QFIS5p7OdcabMlFIITMHfMlwFPnx6gcO6yA LLcUlN2I4J9zeyYIIZXSfgHOND9G5VjkemYcx9weZDAcYtUdQghpLe0U4BzzY8w5cyo8IcnlDUMI KZ32CHBUn24DaJCp7YaFMgghFdNsATYaSs6PQQghpEk0T4Cj5sdAoz1J+lu20eCbiRDSHJohwNXO j1E1dh7OfBdM5EsRIaR0rBbgFouu/Ug4c6xClsyRQghpM9YJcENzqdrIXA8OJoSQsrFCgENDdecO a3VuPi8HRgOTrL0shJA2UJsAR82PMb/M9cHbimQgmhBSJpUKMOfHIA2iyNqThBASonQBZp9uSuhs 2QZvV0JIqZQiwDFDdUkS9p8oviIQQkiBFCbA7R6qSzDKS5qvCyt8H/kGQggpklwCLIxcKoruPDBv g4P9U63xBieEFMks7WnI02XDVAxN0La5Hhw8twdOCCkDJ6V4CkALLfW2JGRDWvi5vQE4OJgQUiBJ IejQUF02PWUzt9JmL4GbnoODCSFFERBgwfkx6oWNu22EHwA+EoSQQggIsKTo1gtPPSGEzAlWzAVN mss8uOzzcIyEkOqhAJNczMPg4JYfHiGkJijA1tE4PZu3wcGEEFIIFGDraMpgJAMODiaEkMxQgEkx NMxtz0iCynJwMCFkNijANsLm3DaSXy84OJgQMgMUYBtptzfZSnjJCCFZoQATkgr6uISQYqEAk+Jp pVbRxyWEFEunbgNINAJCRrX5nrzS/NMRO5O3o9ePW1OtMHU7mVBJ0dJvrdpFYHf6z7jlcbsIbzly hWKPKw1F7deTV6bfSNxVnnr1G415qgPPBfyHHHm3xD1KWR+x2ch0aeq6mUnZ0AO2lEj1hfEQCrGE qHYnbn2JGxJ3l/TtDEgIZZsQS2FTA2brvQfMSLDKPA8JqxV+XCnJuV91ftJvJO4qp7z6TUTfXerQ zPshfL+F7xbz5jTXj1teOJkuTdxLBmk6FOAGU8hj6YidqqEpFk/+AOO3BIEdylSzrZnZ7PAPBXaE VyvjuNKE1ks6n8REyySirr5eEqltgfUFdkSuH7e8LqjBrYQhaHsRqfsdJW4Q2JEcOpPySHhhZBws IV6nY8XhTcUfxY649WdoTbRrGCm64S1PtT8cxowMlUcuSd6v6kRIOG+R18tcGLhkU6PuKUnYb/rr O/U0ptx+8jmfSvJtMAPKQimPKDMcsTNZfbOeh8CvIjcVXt9k6s1PGgQ94JYwNXQWuTAyDqZ8uMD6 uk3RHt4M8qkbjtl8RNPvSSZ8XMn2m4dvhjT1OoGAZ5r9qsHBcfuNu16mA62+Mg8hf1w0Yb/wn+GU u/DkleZZmrr9lOd/ZqQ8kv4+iUSbOtqO4QonkPI8IOY2riz0TayCAmwvcd3AST+RR9R/4y1E9AhO fbCVBxC3EfMFPE1bqRojs3kyjUlPctQxPentDzbEYgmAk2XX0vfZt99RTF4eUe27kiVlj3l0Zuuf fF0ykXCfmMIwdRfmu0LK7We9f7KiBUyd29k2kvUtM+48IBTKTn45SH5+SfugANtM5quj36B1MxRJ woMdyJzKj+nSxaUITaUo9c1KIOWt2F1n8rSKvS7J94l+IShp+2VTiMDrxIWSPNHIa13veSPVwz5g m5Hpu4E1RYlEgWKTc1Mp1TfTuJ1MuwagOwWLHQ2suhhV1DRrn3pOpm4n544a2k8Z2Q9dZbdrQ88b mQ16wFaTXBkpIZwVDvlWjA6x5txOevVF0SG7hGFUhWxcO74JnlbZ17Gh2y/q7oqj9thv+Lzl7Ngm dkIBthwv+LfhkyE8zkceMfssfX1vUckpga3BaNq0TzZzM2eGWMcuRez7RKT96qtI9TUtDzfx4eNK s1/zeAPC78tRit9a1v2aveOBfCsYl9jsM468LnH7Tb6+5n7TW56M7n+Nuw8jz8MM91tklhxmus99 ffzx92EmIs9DwvEmP791dcGQshECp9VtA8lGoDkzH8i4r1L+JLy+wA4zMyjucxpr1aYCG4zcZsCe uABg8ijPhOOKO5bA8YYPMM0hJ+zXwXYJMfV4w5uael3i9ptsT2B53BaSjzTyjCXfhynP/1QD4jYS eRTpz0PC8mQbsp4HhI536nNK9W0ZFGDbmaEb2HpkohvZZuJmGCWEzCEMQdtOcjdwM2n8Ec18AKwc TAjRUIDthw5Tq+DlJIQoKMANgD6TbVBECSH5oQA3gBY394JvF4SQeYUCTOqkuX2iDTWbEGIPFGBS Mw1NiS4kLCEK2xIhpHlQgJtBEyUqPQ3V4PzM7YETQkABbgqt95Jaf4BxSAhqMCHzCQWYkBkpSjjn 9uWDkDmHAtwY6CfZRtHCyStMyHxBAW4M9JPaDnuECZkvKMDEOhqkQkWbyrcsQuYICnCzmIsGukGe 4FxcD0Lmg+qbHQpwk5ifeaMapMGFw8HBhNRC9U8dBbhJzFWrPFcHazLPLx+E1IKo6aFLI8DSjsaw rlNkmw05seFS1m5Dkbf0rDdEkg0VDg624Za2xIY8FDcxWs025DSgkTaI4k1Pe0vTA24Y8xOFbgol NTmyxG0TQkaIWmNOFOCGwSZ5nuDLFiHlIo1/q4cCTBqB1VJUsnFWHzshjaV+d4YCTBqB1VULS36O 628mCGkj9TcqnboNIEl48kr92RE71QdRRJO8e89F6sO5uy5IWCHu26L2kn6/MuOB795zUdadhvc7 g/2lweRoQsqgzieLHrC9KPUVYkmIJRhiXIhDpBVF4oaE1ZK/LWovKfeb/kFRwpl+p3F2zmx/4Yhi 3rsIIZMhBkL/UxP0gC1Fqy8AgR2O2OnJKyVuELh3NQacu+uCWlQneb/WSlDZ8igBAWHt4RPSFASk fo5qf6AowLYjsEN9UCHo3XsuBPCoXS+9ZM+Farn20nS8NLzw3F0XJERTw1HfyJXN7U/d72yE95tg f6Q95sI9ey6Ot/P8PHaGqeBJzhqEJ4SE0U+QDU+TEDht2jrKyNr7n5QB9Z6x6myYxJ/HAqxt2D2W 3l27zgtojPIdI4VHeZbmV6akxWnwrl3nKQP0n+rbNPuN3M5o9fjbKbx+pP0J9ujV9Ld6UxntTFqe m5kfq2K7rObrsUq0IY8BhVwUG2zIgw1KYYMNSH9L0wO2ncg8LBjqAkDiBoEdAY9QLYz80/wc3k6y PWoFHSieut+iCNivNHjPnouVjpr2mHs3P5dtZ1Uv1LU3LoQ0HhvcXzAJy34csVP1BCOUCiSw49xd FygF1Y6aKagpmU2HlNTl2W9Ozt31UgC791ykbAhIb4AK7Kz2eaYMEzI7NqgvKMCNIEZXhP42zuer kjr2Kx/lf/9IQ13np2gsaUAIaQDWvq5SgC1FRZulPBK/Sp1NsPY76zVAAg52hNOvAqtVa1qVUIYJ mYIl0eZImIRltQ26A1gNQxJiSSUQKRJmjTCTqgIKpFxGvR2VXhSZchXYS+R2zD7gcDJXTIJ0bLZI wn7DdsbZE9hUlJ3n797z/hR2Zk7wzvKoF/BYFdGyzONjFWND7QlQNtiQBxuUImhDTeqb9pamANtu g+73FdihxgFLXG8YtCNhZRjCY/Z9ql+ZK+s/AwnDgb2EO6ET9hu/naSWImG/YTvj7AlbFVqyXeLG qcebsDw3xTxWuduXOX2somyoXfxssCEPNijFFBuqzZSkALfTBjn+JGQKY/zebe1PKUqzIf3DZcMt bYMNsOaWtsGG2sXPBhvyYMMtPdWGaiQ47S3NPuAGk159YcSc24sVHT21KyohJBIBWNJKaOgBN9GG bHO5+IOo2y24lG1+VU/9gs3HyjYbavc+bbAhDzbc0jbYgPS3NCfiqJnfeOdf1G0CIWRO+YtX/0bd JhRP5IuMnbnQDEETQsicUnuZr8KJE1oL1Rf0gC3nz1/1ZP35t9712ZybSr8Fvd/AT+KWE0JI7djp 5iZAD9hqtM7lV9/Z9ptyOSGE1E6z1BcUYEIIIc2nceILMATdOJQv+1vv+mw4Ghxwc9Vyc6H+bXh9 uraEkCbjRGqw5UFpesANQ8vqb73rs6bEanENLNd/Bj5HrkwIIQnUPr4nkoQBvtJSk0fQA24JyifW mVZpPFqKLiEkJcqVtM+bFAIyziqRbraiGqEH3B60L5tGWcP+MSGERGJtIDdBfWGrzSYU4FbBkDIh pFisVV8kGmZ16HkMBbglmI5vggan9I8JIUQxTeQsVTprXxpMKMBWo8Vyqmqa8edAtjP8kmx2Epvd xuF86fB+09tDCGk9EhCWKp2dVgVhMYaabeBc0ISQunj7q5+dWOU6U/jZBqWwwQakVwp6wIQQQoJY WLxPUbu6FggFmBBCiImYKfGqCmWcaliz5JkCTAghZELy2J54JErWvzSvBZbPvBGAfcD125CxIpjN gwJI42jtY5Xdhtofq3psSOwDzsRIKWo8leOZNxqjVpwJq34yPgDJt/fUm8+Gu7N2G+pvKcbugqi7 1bdE/GywIY8BhdzSNthQAHJ0Y9dwQS2f9yoMBdh2PHmlI3aGl+/ec5H6cO6uC/TCGhv0SHuK3X7k ltV+Z9uprNXxscHnIqQMahHCJj5Q7AO2Gk9eqf8NoCXHjGDXeP9F2lMUSmUTtjzzTuvzGmr3fUk7 2b3nIv02PFc0zv0FBdhmlO4KsYQYDSYAzt11wa5d5+XZQtlPbYzAN6+xII1AvQpn1WArgtcRiCyG 2XoQ8TAJy1IbTPUV2KH+dMROFWgxn65du84T2KEjsToOo5eYK5+763x1FOFvtRKK9zYAACAASURB VAsbeHSnLg98pexJOLTI7cTZE25HIvcbZ8zU7cetXz58rGyzofb+1yJtyNQ1U1DwNvaWFqPk5Mw7 yf6bhj1WFGBLbdACrMTM+PPeu/dcCGDXrvP27LkYfgE2xc9coiK0av2A8Jy76wKJG/RX+ldqnanL zR2Z9sQd19TtBOwBoP/UvzK3HzjwrNtPWL9w/K0JHyvbbGiVACO1BhfXdZp0S1fVQduwx4pJWFYj 5ZHAEq2+6TcS8PAkbjAFzPzT7ElVC5Vc6YVKn8zfBqQxPQk2BD6ba6bPGE/c/nb9WWnwnj0Xq3ZK H29xYzOUMWp3hFSHurfjshc11dyWJSc8NjEBC6AAW44KQSNKiVMqhCmQAflMa4OxowShLVaxqkS3 UxjF8Es5kNlCcITMjBndibmrK81BlJP/F77Tpj5ZTMKynYALGId6yVUSK0KRWBQnkMoe/V8h26wd ncm1e89FhbcNFF5SPSnUFzWFaovcae2x5pxQgNuD7um8JKS+MxM3pKGuoQ6F71dvUGCHOoGXFKzB wnjxJ6QK0qmvpWR6+pr+UDEJy1IbpiZhwcghCucAm8+emfdrrm+mL4U/a/Smpi6PtCdM1u0HfhV5 aIjPag5sf9eu8wS2797z/uTjdbCj2Msc8oP5WNlmQ0uSsFKor5h1tuepBiD9eYicLSvTKYhauWGP FQXYXhsC2UDjP+8NSJ0YpTOcAzlHkUsACGyXuFF/a64Z/qyJzNKKXB5pT/jIlA2B7UwNm5t7CS9M b6dKwgqfh7j9lgMfK9tsaIkAI6oFKHA3iQYg03kIWDLToCMRWpLNhnKgALfZhhTXNXYlGyaMjbYh PJKqTAOQ7jwUO3jR/IaPlW02tEeAa8KGW9oGG5D+lmYfcDtpXNeIjgPPlqpdGkVOHSCad1kIsZPa JbYY6AE30YZGvybH2hAZTC7NAJRxHgSkhJPuAvGxss2G2h8rG2zIgw23tA02IP0tzXHAraWuimAz 07h0zQAzz7dHCEG2F5CWPGgMQbeWZqmv5aR4o05Z3aj2d3Myj1h725mGZXHhW9K40QO2nakzyVVM YKBRchngAosE63pQkdWRp5LTkhQT6U1pEdR1LGf4x2T7mdYHcO6ul1a537irYI6sy2kPCWOttxg2 bPygxWqxtccyG/SArUY1WDNPPVHea6/ur00uA1xgkWCtu7NtKr8leXrYdD1jCZRxWabWS44j53XJ ut+4q6DfA8ooJj1vBCarsVax4gxLfkbsPJaZoQDbizkudlYNLr6tz19/t7kEHn4RsWyGzdTDPF/H dhOo42nF3RbBLKGg9o0jYAjaUkz1DVQ1SV+vV3UDZ63vm6bubzhUmL6Qn5qFKnL7cej4s387F4U3 klD3N2xDphm7xisLHS81l6epZ6xO0aN2XSANA5LrE6esc2xuP90l0Dt9qbkkfb3khP3G2Z+VrHWd kzcS+HnW7Yd/aHO0PGUdpPqYMZzUNvnlMCRrbYgrcxso/zetru1LA+UL89T9jTQsbFuoey/6QOK2 H0ZPw6lKQunpOTGOWMYJQMCkyHMYl3qd4vwIQOaoZyz1i0j41IWPK+G8JddLjmO8wccrY+Lsn22/ kdclcGINI9UEihci3X0Sd30TDjOOGepGR9betnMYUuUvCqUohR5ckO7sNEyt6AFbTcKsFJH1euOW h+v4xtXBzVMfN/17d9ieuO1r9Q1/FWhbAxsx46vmV2nU1yT+PG+P3H7WesZhOyOPK+G6zFYvOY6A /TPsN/m6ZCLhPom7vpGYb13mNhO2H1cnu0HY6QdnfcuQo+H1LXR/QQG2nMAbeiTxM75OqeMbVwc3 f33cNA1i1m0GNmh6SHEnR+lWXOuZ9bjKG6Zs2plwXNXULQ6Tab9prkt6ku+T5OubcfvW5irNgjoY C2sizXaW23NhQjAJy3aKKrs7ruC73dygWQfXXDlueYEUVVd46m8D2y9KG/IgokJkaXzZCq5LJDPs t7L60/nvn5bVt26Z+rYbCnCz2Z2xXu/uPe/XQ5t2++vgJi8viTg7S+XcXecj43EVZafazgxzpKS8 LoWfz7r2W/n2L6z+PiwDa9UXhalvq0ScSViW2hCXu2TWA1akr9ebczn8je/U+rszrB+JOQWH+qzG BJt5quHkVfjTT8zMnUA94Lj9znbe4vJ0TAPgd8Ej05QCx5VgT+T20wSKx3t5qZmElb4+dNx+4+wP 7VcftS+xPPk+SThvCUca7gMOdAaH7U84D+HjsioJqz71rUgpEk9Tw9SKAmyvDWnqAY/NSlUHN//y wFezrh9dDziBuHrDkcvjijqYRZEBmPWAp+43sLVp9YZ3IHT5AtYi5kymPN6pv0o4KP/KAkZCWdb6 0HH7TagPHXXUAoDE9eHtR+43a9GOwI0Rc6uoPNsp1zH+uCwSYETde5VQnVIkllutyIZEKMBttqHR JVNssKH+Wzp5vr1qDYEFt7QNNtT+WDW9k7TSxyqm2Ez9j7ZhAOsBEwAW3I8kAEtlkAKZdVK20ilz NlwbjzcrFOC5oA23KiEkAmGt42ytYdOozmoKMCH1EDkYiZBMlFdfKyeNVV9UGTGkABNSD+2IoZF6 sfYeqtgwof9pFJwJy1LM8TbhP+MwR0oEvmryCykhxH7q1D9pcTAgAXrAVhMYhjF11r2EqreNuzUJ ISQ9NgwqyAoFmJDaaFx7QYjNNM7NYAi6eYTnbZ66cvr6qaRKGtdeEBuwtjtJQEq+VWaBHrDVSHnE k1ea5eh12VT1H6bNaaxnMaxrHn8yDTZYJAMWqy8sUF/RrAeKHrDV6Dq4qha9Jn093ch18pRoJcXS xMwRUhfWqi+s9H1jZsuyCAqw7UQq5Qz1dImdWN08EMuw+G6xTn0BSEiLX1kACnBzoQtLCCHJ2Ky+ YB9w06mlni4hhJD8sBqSpTaoxCshlpSna/wZWw8YBdXfLZ/aB+zZcEtPbKg1SjZfj1WiDU2vhlTD Y2V5gLc+WI6w+TbMUA9Yr2YuNwt0h9evAwqwJTZgDh+reBtqF79oG1JbVvVjRfWNJ+0tzT5gewnI pPlngoJO+6p28SOEpMVakbPWsGbBPuCWo+PPgZFLxCr4TkQisVbkrDWsWTAE3UQbshngD0pvt+BS 1u6F23BL22ADrLmlbbDB0hB0tTbMF6WdMoagyRh/UFqC4SNL4WUhpFJqf2FhCHoeYTNvJbwsxH54 lxYJPWCriRxWNPOm0m8hrnJDgRUddJWI8HJzYVNqSOS3M6f/W/Z5i7tepHCsjYTYMdtzq6AHbDW6 vdu167ypxYATUK2nvzM41X4DO02oNzwbge2E7Sx8jyWR386c6otKzpvlV6EF2K2+pGDoATeGugfv Fsy5uy5gax7C3laO16sCrL381hrWdCjADUNNgxVZ3zeyTrC5UI1EUstlofHtKDsvCmzWXJJsvGln 8jYjMas3AnDETvO3Kc/bDMuz2rl7z/sD2xGQl/h/GzA7bP8M5y1k/0tjlk+2ExnQzlSXmqTBWpGz 1rCmwxB0w1DNZbi+r57uKlAnWK+mv9V+jPqq1CLBYZ9JLQkHSBPsVOzZc3FYcsJM5uwUS6qYo1oS Vxc57rxlXZ7VTqW+ge3oZi5w7BI3xNmf9bxF2X/h1OMKX6+p54Fkx06Zs9OqlkAPuKkE6vsq30i3 tjpgKLDDP4XWZBxwoMWsvUhw8lRf5lSaCaY6Yqcnr5TyiHJ8HbEzPKOnwHb9WX0I11dOXq43aJ7n THaeu+v83XveH75eUwnXdc503uKOK+H+ibE/2/qksTDrqkQowO1BtYnaMUpuCs0JokudJKvA7NmU jbvSYOX4OmJnml/F1VdOU3c5vP2UdioNTnm98pCoypPmNdP9M8P6hJAADEG3ikB8Mg3VtJsV5+84 YqcZf06DciX1f1OXF8IM16soIo8rqz012t8arHUwrTWsTVCAW4L2RQR2JPRBaperGrRvndXJnrnO sfZ9BXaoKHR6DU7Yb9blKXb0ftUNnHy9sm82mz2791yo+4DT3D/hHRVr/7xhbXaxtYa1DM4FbbUN UYkwQrWYu3adJ7BDR5L1Z02g7q/+Vi83U1sTEmXjEl9TZPleBH+Ue7zr7WYCcNxcH4HwePh44/Yb UFzlCiecn0KWZ7dTBrKg47Yfuc3w9tOft5D9jwdk8v1Tcp1pSx7tqudhLlrkck5szKmkC4T1gNti QyjxR+h6wKqxC3/2rx+xqUCNYbUksvxweDtxyxOMD9kpAZGwnYCdkX8m7zryPCTURY47b5mWZ7RT ApC40VzkYLuaaSiQLaWFNu66B6yaao9hv8AoNS/peBFz3ZPvt9RY8mg3vRDCjDbQ2S0BCnCbbSiw pajl6auntTK8QKU3VlRDSrgA5htDaV31ltzSNthQpQCX8Qhk2yZ1t0wowG22ociWoo7nsAYB9gdR zwdQ7y0tABl1HoqL66Y3BBbc0jbYUKUAl/HYpbKhzOfdEqWwAQpwm20otqWoXoLr8YBrr4vsP9Gx j1VBcd30RsGCW9oGG9ocgk5zeLkbAkuUwgZYD5ikZV4CUYaSVXrIul1LuVcOqG0vQkDW8ryVr75k FjgMiZDiMb0AtmtEUY36zuCBUn3rggJMGDMqDH0m2ZyRMKXeFXnuPd6uJZDqpFKACR+/XAj9D88k qRrJdz4rSXs1KMCEzIK/4WPrRyplfPsJ3nmNhgJMAEah00Fnl9QL/d2WQQEmAJ/neETQ2+CpIhnI /2pbUkKfKOVO5pt8NijAhIQRAhjPFqkbKkovyUae7OJSnV0ByOLFkuqbGQowISOM9kMNF2GDQmZn NvWtJsjMd0lLoACTEXOrNuxXI2WQ6XbiTTifUIDJiHl68gUnyiA2QN2dcyjAZI4Yt3f1TAdISADe h3MOBZhMaGUUms4usYHaH67aDSBhKMBkQpv0icE9Uj3hsT2W3Iec7dlOKMCkPYwnyhgNHyKkSsyx PZboroLqay0UYNJ4QhNlMNhGqkdKy3RXY5UxxIQCTHw0RbuiZoVkO0PqQd+NvAVJJijAxIfNLch4 VkgdYbbZWNJu5Dwm9wnAARwBpykv6rbTqdsAYhu2hXCFgJSQRuEXq8wj88W4P7URZYiKeJZHr73C t6VhE46+CVCASQBhQ8qGYQNnhST1o29IGbPcNvLO9uwgKLoaz84jbiQUYBKkxscrrpkjpA5U9AWI uSHtVt8cP06IMEtbj7lB9DpwBDyJoUcBJjVjNhZ8tIkNjO/JpBnT5lF9Qfc3N64D1wFUb7rLJCwS SekhXzsHbBCCdPekffdtYFDAbNug+paJEOi65gIKMImgnGLdnBWSWEe7kgvyPVVOTKfvaNuSD21e um7gFYcCTCIo9kGjs0tso6X3ZJ6sq0T1RdvOVA04AqGQMwWYlAJnhST2IYvQ3Tbezs4U7ZZeO4+7 UnoRGVdWJmEJRN0OoWeHN0SZzJbKYYySlPYNKSZzSlGDd/OO7SmNvIlXyV2/gGABz5yEgs8KawR4 2h1grhr4P6u71su4VTKdXV4RUj/Fjmqb07RnMPcqN45AJzrYzBA0iSb5meOskMROSkr0s1Z9kdOw qerLgb/56bpxsUALPOCA7xss5xX8AkCwzR9tgUl6ZaNnhXTG59rGcByZQ3QYpqQ2oJ1NS5opnen+ 5qTjwol1dOsWYFN9RZqXVznxvnT1kdG6YtTzSApCjE83Z4UkViLFuFu3zDBMS1MZpqY9g+qbm9DA 3wC1CrB5+SfqG2jkhf+D9L/j6mRb7ZDxjikMfwkEQmyh2ooITgtblTTqy4G/+eklqS/qFGCtuJOc Z1N6zXqvBlLfN+ZUcWIyaasqJcD7phja+OJPGktNU4Xb2JrkcjWmDToa4c28AwIA6DgJwefRKtVY EiRSfbX0RncDB0qwi4l7JqVPgxmLJqSNVPtMTxoUKzAkt+xBRwDVNzdCoDPF/YUFWdCm+goIMZZk MerqVbeLGH810WYxvpPEpDN4cmPRdSOkwdT+AFukvgLmIJbSBx1BBZ9tOfqm0u2kedGp3AOOyLrS 6gvDzTW7KMKyqhxctbIcpWIE/WBCSMOoKcgcQe0GjOg4cB2sDYoZYp9GfQF4TKbJx6jk0fRzWHsf cJT6BgcmjQPLUv9pjjsKBZxHybtqnCpvI0IsJ5DMXDt2yI/rjBJoDfXNRVr1teDYG40AummFte5h SECs+kZ0CRtKLMZLpPFbqQcp8R4ixHaqTWZOT93muA46zqglXB8Wo4hp0p7BaTeKIF3wWVGtAAdj yXJsqF99R8tCxzByajFxeXXO8yTy3NJBe4S0BXvizNbhCN+kwYMhhkVkQ6VUX9D9zc0o+JwWCzxg Eae+gZFIgRC0DjsLnx7ruSJ4IxFiDeYTae2jWWezoeKWZpTYkxh4+st8g47SbYDqm59pA38DVCzA pgscKCsSSM4yXtkmXrIOQUvD90VQfX0rE0Jqo0HObp1NRsdBx/WZICXWBgUYlnLQERh8LoJeB0Jk Oo3lCHDcJZ/4uNrr9U0u6R9ZFNiONPKq9M9kcLbESU/w+E/wxiKkUhqku4ra1DcQc9YUpb7TJoKY wHzVnDgOOpl7P2vMgobPqUXoZS1iUK85z8Y4cVLPjSUj71a6woRUgy8Ro1nUMHGPALox0/RXPOgI dH+LoBdb8iiBgibimMyVIbJU9gXgjH9lWGJsYMvxW7efcpJwAp3EYW1OMi6LPYSQbIwfsIb6UHW0 Dx0H/W60+q4PCkt7Tn9o7P3NSdfN8LpjUIQHnE1xwz/HaCqrkXiLSbRZ4NHP+Oln/tKzjx45+uPv Xvv9y777va9+57qrrpNDVXks0ruly0tIpTT8eavWfGecbBW528EQw6IGHVF9q8KZUvIoAVdga7o1 4y9nwpUWgf/E5IP6WgifaztJfh4teeYrfn7rvbZ2u917nLjtjIc/4LHPfvzC0sJ3v/qdGKMyecYz YIMznd+GdmwhP7QhqwEy9XCW8mywlhRH0XGCqc4mQ89Me56dTOrLkkf56XdDJzzt+c/hAftCweGF RlaU+a2Zp4yxJAc3MppRstvvnXLm/SYLASFx9RVXzW4zISQ74wfXthkzcqFGU1S0s5HjGz89oSex PhwbVkna82i/M++JAAA6MwafR7+e5UfC9z9juSG9ZqqzuYL+7eguUys7QOjpFjjlrFM7/Z65TEL+ 8JtXTv4K0qb2gZCaaVwyc3pEaBxkiahRRgm6WOCgo/Rpz2DwOTci88DfAIX0AetPY+k157cKr6q0 Wa+iZHi0UIwGEUkJIXaevVNIKcVYzKW88ZobD+4/OAmbMH5CSNG0WHc1FR2a6h2cKopj9UXetOcs 6svM5/z08gpo9izokRr6B9rqz45OpBp37kb/N66XYNYZVDWw9EBmKQeDwb7b9wkpxbg81pXfvDJp pIOMXM67jJDpBEb7kbx0HPQ7qdS3yloLGrq/Oelkm3UyEiFw2rR1jKG6CAzVNT9E1hOU/vUFYEyU MZFhc19ipMHjTuJtJ267/4NPO/WB9z/rEQ/88Ns/cNnFXxsJrRxXYtDVK6WcbFzrdJG3mb97ux5y pnkXMle2DTbkwX9Lz7ENAo6cGFMXNjxWOfHf0gLodmJaZ/8I3/ViZ3tOuJ38p9dr7KgxSxACC93o 861UafwpFimRS4CD6uuX3rg+YOh7VYml49vOKBztGKv5rBBCSG+orR9HUeTkXz1Plo5RF4kNLYUN 4meDDXmwQvxqtMG4fpbc0rXbkBPjlnbEaErC2DXH/x8MddpzLkZxx+THSvo+0v3NSb8D140PxKYV 4Cwh7DjfdzJ5pFJcCaFl1Z/kbK4zClMrpXSA8eRWUkB6gDP67DsqSOlXX+Mr3yfeXYSEmIfO3QRy vjamouOmHRLqeYXWWsgC1Tcnrgs3V+6VJrUAR15i3R88cnxVwNkZ9/5iorIKCQgnlO0sAA/Sr8Hw gvNsCDHpJNYxagmjOJI/CMMACyGjPp651l1F6eorgF6KHl+FJ7FW1KCjjN2QVN+cCJEz89lk5iSu 8W0jTPV1jBC0IbS6l1eaP3cghiOVlQ6EocFjbze4T2mUIDTDzr5/Md/tDCEjxHh0AZ+H0tXXdTKU Ya9r0BGY+VwEkcUzZiW9AAdyqeQ4+Ayf+gqjM3iizeOfm3mW0jO6hA0NluY0k0Y2lrkFKX1yO3m9 H28Q/l+BDjGZO3jHa8o9FV0XHSdtd76so9bCZO+8KfLhqMKRhZHdAxb+P8a5yhP1VXLrjEPTwvjV yE8VcASkNwkgjzRYQHiAM9ZXOUrI8vX1BnI2zWQrM/k5dGsL/7eEtIgqejdJmExhZwCQWBuOJ5/K l4qYqdaC3iHvkpzkHvgbYLbNhdxfOKNE6IkMG7nQk4Qsadx1zkg+AxqsdNdU04mmyqANo19RX8lc w/u+BhygF54EOJH1ITyd9pxPfWeIgrL3NyezljxKIIUAB/eo892NygqTt7Gx+jrjz8BErSPys8fS C8BTE2CNnWAzo2q0rkq/8gBMpHoSeZYTsR9N6BG64XQ+Cm9F0lRqH8TVIEo7V45Av5Nt44UNOsqe 9gyqb24cgW7B7i9m8oClX25V76/WXa2+ZkTamHVV3TreWHSVnHvjD2qJz9EdT7KhhVsCwhv3Ezs+ xQVG8jzqMI7sAB6Pg+INSRoJ1TcVorzSEaqoUSaGXjG1Fpzsac8w01fJbAj0umVsN181JNNJ9XX3 jsUYxsCk0XcSUsIRIw3WbutooeGeynGylYPRgGApR8+UNDqWdVh7kiCNkerrJUIYfxJCWo4o7xW7 FzfFVTxecWnPM6gvWPIoN12n8OCzIs3lFD6VDSwZLfBnPoux5gkHG5dwj42TuPTkKwB6ibmd8Vim STx5HG0ezfih/nPGc0qL8cpjr3fS9ywmMWcIv8kifBCEkBZQ1uu2APoddLKO/JFYW5/8lceA2TTA Y/JVPoQoPPdKk6ccISbxZ+38ap9YyXC/gyc9EBsXcfF3ceOdfhU0U64myyaDi9Rm1dQcMKPNvvWC Iqq7hMXYmR65v6LU12JCiCWU8oirCSazSqAa8luIQbPN+6+78MjM9MtSXwCuwNYpqwjjfzrrKpjz DDi6A3i8pNPBkx6IexwL18H9tmFlHXceNDbqjzZrh1Sayc9CdRePcynGPcowDYBvxg/TsIneaxU3 3wBmcIFtcJnz29COLeSHNthgAAq1oZysK0eg353FAV0fFpP9lDbtObQOc69ykn5uUR9pb5WcAuzP vRLOJMjsCPHTZ+HkbQBG45S2bxX9LvbeBRgjeqHzqvTLmvZu9bSUppoaomvGwydijND6YrK1uOB5 WtrRWrVjC/mp0QatE7Wfh9oNQKE25C0PF4HroB9T9yaZ9UFxlY5S7t6/GtU3JwJY6M10e6b9TRnO tQAgzjlFnnp84At55nbR68hLroQ3NBf7V5psZLw9MYokC0xcZmG4xZP9Sv9WlEuthySJUcMXOUKJ kOoQJQVK556iz6pKeJ6hCR4WVWthpiG/YPC5CHqzqW8GCnph1FnKyrU9c7t80MmjJcDEbZWQ970n jlky3F9zIklDfX0LJ1nRhrJqn1tMot/B/7S/bv4rJ38SQtpAOc/zzOrrecWlPc96ZHR/c9JxMifc zbCTzL+I7mQZT0clJSTEsctyEvg1/VKJL30fdxwcfTUa4OsA3uRlTZiTYYlxNpbZBzxeDX5LxPg9 QOgQt5gItvaDww8EZ9EipcAZMyqilIhWd7bOv3HiFYD86pu11oKG6psTUdbA3wDZ+4DV/8xqg74u WAcCuPFOrA2w/bjxD+Voha9djR/sHQ0Fltr9FSP9NjuA9XvfRGjH446EgONAINrrhRmXDqRcaRWf uWW0oT21of/Vhi3kp2wbZsqaqZraDYAdNvjpdWZVX2B1vb60Zx2JpADno9+dMe18RHlJWMAkwDtJ iTLzngAAtx3A/sO49z3gjOqEiB/chMuuMdQXo88APIzKH+mfS51p5Y7n3jLnl4ZPdEfdJMZQYMNW /6kwOozL7FovExvEz4Yt5Ic22GAA8tlQgv0zDPbVrBWlvmKmQ1MCXIQB84zr5HZ/ixRgI6EJE6fX cHwni0auqvpw12HcdgAnb4XjiBvvlF/8LuR4TFHQ/dVDksZzY2EcUhZqtksxLncIX91DMSoDMVFl /a/vLIjQn7M5wU1vrdq0hfzQBhsMgB02jOlnn+hKsz7AsMpBR2EE3d8CWOjlTiooyQM2/5zMMzX2 fYMzckgcXMENt4vFrvyv74wy8rXKTmQ4MCOHVl853o7ycQ3dnQSfDVdYu+O+gw+fCNMJznqWbWgp bBA/G7aQH9pggwGwwwYA+dS3sFoLM6svAMHe37z0OhmqO8dSoACPNih8H3SHq0/2AsonAeDIGq69 bTzJ81hlPel7WZOmE2wkYAXm+oA/1h3s/dUhaHNqLYHJdo3zEtTplNjQUtggfjZsIT9ZbSgjqar2 81C7AZjNhuLtzqO+/loLszNbrQUN53zOieOM572qSIBnqoaEcc5wRP6wmKioVDJp1AAeqawaZeTB k6M48yjreVweWC1UgiqNZCu9C63Nwa5cOQpxa9k14+eTRGstzFGGExIkagoXUh/FP6x51LfIQUc5 1FdyKEduypx1MpLZhiEZt9lkgguNGI9KwliGjRmYlfTK8Q+lB2/sGY+EW4yqJPkGGklTd0W3P0qE lh6EkNKDlPA833gnHQYPeb+jhC+OEiFp4X1iEcWr7wwFjjQ2DDpSMPick65bUsmjBGYTfO3jjsVY hu89Q4ZNl9QXavZGgeiJ+srJ+sL8pa9fxFne5GzcPPJJDH1dv/laeOMojJ7TQ6R8MaQLTEgDKF59 Z59vwVdrIZdhOZt+j9HnfDglljxKIPUutUs6YjypxcTHNd1iMemI1RN0jH6F8ahf+ITc5yKPvWe9 L22Ayoh2xh+k7vQVoRcAI7Oa4kpIGyj6Qc6lvsBaQbUWZhx0NEZKNm95SLBuPwAAIABJREFUqUN9 MaMHLMdJTKNIb5QGq9XUA6MLJ+i5KoHgB1OnR13LvoRlP8bfYqzinOGZkJZjk/oWWGshZx8Hvd+c dN18027MzqyyL3W93pAGS0B4wVvK5+COddcMTWOcCx1WX6lj3WMi0/SpvoSQlHTdXOo7HNZca0HD 4HNOhJhx1rMiyCLApnuKGA2GkdgsMHo3C96eRrhYq+ZEPoVPfUff+rOdtUhjks8s5RCEkDZScOi5 4+Rqcz0Pa5NBR/nSnvOpL4PP+el3aqzNky/w7dNgjOPA4aRo32+MyPM47DyRdhHqbIbPHZYq9u2M HG5zV9Lz+dnS6HhmjIaQxlKw+rpOrg4/T2LVjrRnsGHLTae24PNo/5l/ERDIUSqWocHQPcSYLInb lNTBajPyLI1xunKcaG12CRup19oYb5xNPdmhkV8NGF9FmsQ3SUKso2D1dUSusZ4SWn2RN+05v/pK tlq5EEC/W+85nC0JKxCLNua70BlVMCor+JzgUM7+ZDaPyfQZAILaPHkQxWRH5pY9f5Gl0QyX3kTa ffsNhbl5J5Mkwv0ipAoKVV/V4M6KVJWOCkl7zq2+klkvuel3ax8fU1DutVY1YQzOlcGvQ4wVN/B9 sK0LbE2v4/+hDE8xPZ5lejLRdNSmCJkO1bfhiHGDOzPrg2IGHTmigHaf027kxHXQqS33SpMnGhPu rDVeyqLd39FK43+kbwUZP5RI+FbzDu4TnS4EIFwAcF1IwBtM1DfCWjMEbeRdE0IspTj3ZKS+OeR3 vbhaC/mnW2LwOT95YiHFUdroY9P9jYpAT/mZHHf96hm19GchvMMHJnNBQ7vC4zUnBR4MV3jilweD 0YQQ29CPfTH0O7lkb+CrtZBr0FF+9WXwOT/9bvWzTkaSOwtakfxqmfJu0eN9hZn2rP8XEk6z11j9 TxoS6wtEh7dQd+yfEBJN0VPq9Dq5Mp6GxdVaKKTRl0x9zofroFtn5rNJUX3A6ZQ46pcRd7TUEzgL /zSTZsg6Ms5sdPFOpFf/GVgho6WEkPIpWH07Tq4JNzxrai0oOPA3P/2uPSkd9UyAOR1zSixE9g3r YUvaITb6kjEWYGhX2NiyNWefEBKg0LTnfDPsS2BtPTxuYyZLnGJaHeZe5UP2OsKO4LOiaAGe5eVV AlETbOmxv3q87yRvy/jtZMSwN9kCDNHVIejRT8VkndltJoTYjcidaLO6Pm5U8r21u6Ig9WXwOR+O EDUVXYjDLmtGyLHcBss86KmyzCfC3xXs01pThvVy1mwgZA7IOehozRx0lGND+Wd7VjD4nB87Mp9N rBRgwMiTMjR4MvBXTlbRf04+6m5jwwme9B/zLiak7fTypT1bNehIweBzTuoreZSANQIcnOHScH/h 94OF0d0bsR34hzCY3nCU+tIbJqRuiq+1kKvSUVGDjgpKewbVNzdCoGed+wuLBBjwJzmPl5gaDOmr Ohz5cJjjj33ucvr5uQgh1VHwkN+ciVdW1VpQcOBvfnL2R5SGVQLsR5qFGaQvD8tX7CHql0EZDqsv IaR+ClZfoQeZzLRNCayum3/NbkaB0U7mXuWkk6/2c5nYJMAjBzg0C4cw0q8mIWjj6Yh43LTcxkw3 XehTTwiZjYKfwl6O2q5KfQsxqCjfF1Tf3Ih89a9Kxj7LJkN7TRkee73Qj6ye+sN4iCcPj5gsitVm QkiNFD0iv+PCzTG9/lpBtRaKGnSEUeCP5KKf452sfOwT4DgmMqwIzFUZ+RPevIRYS6HNoiPQy6O+ QwwLSnsusLln7lVOXBedjs1vMVYKsOnjBu7mgKYGbvWp55mSTEgr6eWYX3DgYWBNrQUNSx7lRAAL NmY+m1gpwCaRRQ8n32bZDiGkfoqutYB8o369gmotFDjoCJjMpEtmppevAGUlWJobVjS2XwZC5oTi 1TdPZXULBx0pqL45cR10rXcvy/SAixtb77sXEx3ihF8RQiyg4EdRYPYcV1lorYUC4ayT+bFv1slI yhPg0u4gvhsSQhR52tlJrYV8uAVVOtIw9yon/W7Br0SlYZ+VS31sXIhY3nXRnS3QxPgzIW2k48ze 7WrhoCMF1TcnOadCqxZrDBUCWzdifYj9h6NXWB/g8Q8AgG/+GPsOZdk0b2hCWofA7O1sgbUWik3z 4ayT+bE+89nEFdiabs0y/cjFHjou7j6ClfWk1fYfwSPuj9NPxDFL+Mn+YsbtZaOYkyCAjRBrtdnQ ji3khzZUZEAp++ibmc9Z9jD0sDYZdDQ7TtFdv+C8V7npueh2LGig0v7cAgG+9z1w/GbcfNf0NVfW cO1t2LyMHVtx33vilv04OquKTWPDhqW1tfDbwJSTsHHjsuM4g/GYwjiej+4F6H4DwxhnP5na7y1L tpAf2lCFAaVUAO04/g6p1EdRYNpz4bXtGHzOiSOw0JvMmZiLigRYCJw2bZ1wkaKspsTfWKeegEfv xP7D+JevZYi9nHYiHnl/SIn/vAJ7Uyh3OjZuXD777DNOP/2+j/nph5199ulnnP6zoVXGM0sb9Pu9 U07ZcdZZ93/Skx/9nOc88cwznnrTTbck7OX56D4DHQB3QL4Rq7dlbgRyNmiFzP9ngw15yHlLt8YG RN7SxW69+E0LYLEXWhQgarcSWFlLKKWWwYD86hvYvZQU4Lws9sZFFwKlehJPbLTuGJMZJ20j5jZL 81hJiUr6gOON2L4Vj96Jg0fxH9/O1vPxw73YfxhPeCDOewA+9XXsm8mTDLFp04ZPf+a9y8uLAC67 7Dspf3Xaaff52mX/3BsXmzx8+EjSynCePj7nWyGei+67UJYTT0jtlCIpquLCDH2lq1YOOlJQfXPS tbfkUQL1Wby8gJ8+A6vr+OzlOLSS+ee37sfF30XHxRMeVFSl5b17b929+5vq8+23p3Wsr7jih1// +nf1n4cOJQnwD+G9D+vqUbsK3t8hsc+bEBJg5mk3VnXacz6pK3zQEai+uRGNGfgboDIBDt1hjzwN vQ6+9AMcPBr3m+XlxVNPvXe/3+tEPnI334Wv/QgbFvCgexdl5d13H1QfknU0wDe+8T31YX19sL4+ SF75Cxi8D+tXwnsLVo8yQ5uQ9Mw87cbawMjZzKGfhQ86AjOfi2DU9ds8KhNg/+nZdgx2bMG1t+Gm OyLX7vW6v//7r7jxpi/98KrPHV25Yt/+r1940Vte/OKfcwLBn+/vxV2HcMZJ2LhYiJWrq6OA8MrK avpf7d9/QH1Ijj9rvoDBG7EW+95RMs9+9hPe8c4/umT3hw4e+pYnr/zQh/98tnUIqZruTKXlBp4e dJQv7bnoQUcKur856ThNDD4rarL7jO0AcPmPI7886aTjv33Fv77u9a/+9Ke/9OQnvfz0nU95xtN/ ZX19/aL3v+UTn/zrft/Iv5AeLrsaroMzTirELi3A+kMaDo/d5aNH08q2V5/v+wd/+CuvetULzzrr 1L17b82zDiGRlOWKOALd7O2VnbUWNCx5lBMhsNCbvpqt1DERR8fFjq247e7IOTccx/nHD71tOBye 97iX7NnzLbXwhz/88Re+8NWvX/add7/nDa97/av/4PffNvnBzftwaBX3vSe+dnXWSM7xx2+94IJn P+CBp23ffvyhQ0euv/7m+9//ZPXV6qqvd3bLlmMvuOBZj37MOSecsO3QoSNXXnnt//vAJ7V5R4+O +rAHg4E6hBe96BnPfNbPHHfcMVdddd3f/e0/f/Wr39abOvbYTfe73/Yzzzz1OT//pDf/n3dfeuno q3vf+4QnPOHchz/iQdu2bTnuuGOOHl256aZbv/zfl33oQ5/W7rgQYtu2Lfe61z0e/OCdz3/B03/v d//0iit++MIXPv1Zz37CSScdf/fdB3fv/uY73/GBO+/cn3DUr/mdt9500y3XXHPjU5/60//6b++e eR1CwpSS9qzoZR/fKW2ttaBgyaP89FVQpKmnsQ4B3n4clvu44rrIL1/ykp/bsGHpkY943sGDI3k+ 7rhjjh5dPXp05b3v/eizn/OkE0+8p+8HUuKWfXjRo3HpVfjxbemteMUrnvuX73itz582UFKqeNSj Hvrxf3nX1q2b9ZLHPvZhr3zl89785ve+9n+9HYA3DiJ5nhRCfOSjf/Gc5zxRLXnMY8552cue83u/ +6dve9uFADZv3nTZ1z923/tuV9/++q+9HsD27fd639++6Wd+5pHBADtwwQXP+l+v/dUnPfHl11xz g1ryvr9909Oe9lj1+Q8c8cF//LPnPW8yXOrxj3/kC17w9HN+6jm6MzvMF7/4tSmnJt06hAQosSHs OLOM/FkdFJD2XMaQX0VTVcMaGlLyKIE6QtD33oZHnBo5h0a32/n1V73o1371dVp9n/vcpzzqUQ89 44z7KaX8p4/+e6fjikBPzN1HsNTHve+R3oQXvegZ737PG9Q29+699e///mN/9Vcf1B4tADl+Mz3r rFM/9en3bN26eWVl9Y1v/JvnPfc3//RP/24wGAoh/vAPX/nMZ/6MufJwOHzZy56j1VfhOM5b/+9r HvvYhwHYt+/ARz/67/or1Xl8xx37HvzgnUp9Dx48fOml3/7CF7566613qnXue9/t73nvG7RVH/7Q p/XPX3L+s573vJ+98caffO97Vw+Ho9k/Tjllx8tf/vPpTwUhRVGioMww6+TKejHdqyVN60/3Nz+N mnUykjpeHzYuwnWwHjFd1Natm5eXF3VU9jGPOedb3/r+j350PQAhhOM4N910y5Ytm2Xgxr39AABs 3Zhy/5s2bXjHO1+rPn/mM1967i/8zyNHRjHkj338nc961hNgaOqfve33N23aAOCVr/jjD3zgXwH8 0z/9+8EDh97wxv8J4Hde8/JPfOI/PWMCuT/641//ylcu/5M/fofrOq97/asf/vAHAXAc53de83Ll Vu69adKrqibbOnp05ROf+K+HPvTM17/unZ/97JfVRFqdjvv/Pvhnz33uUwA87nEP37x50759BwBc e+2N+ue/9Eu/8Mu/9Nq/+7t/BvDIRz74v7/8Qdd1ATxy19n48wtTng1CbKfnZs5+srbWgkIy9yo3 zSl5lEAdB6C0LeqJklLqWCuABz94p1JfzcaNy3v2fDP4szsPAMCWtAL84hf/3LHHbgJw+PDRl17w B1p9YeReqajy6aff74lPPBfAwYOHP/KRz+jVPvjBf1MfHv7wBx5zzEat1ve5z0kLC70nPfFl//mf ez73uUt+9im/rMcTP/7xj1QOt5lfPRwPjXjz/3n3rkc+71Of+qKexnIwGL7zHR9Qn4UQOvB+992T QhSXXPINpb4AvvKVy7UHv2XLsSlPBSEFUdooEIHMA3/XB5bWWtBQfXPiOA0qeZRAHQKsBv4esxT+ Zjj0zAG4t9++70EP2glg69bN3W7H87ynPu1xH/iHT0ZvNvU9/cQnPUp9+NKXvhaYcEP35ipNffrT H6f+3LPnW+bU0Nddt1d1srquqzt0AQgh3vOej+hD2LfvgJbqfr93xhmnICa/+vrrbw4PIP7e967W n485ZvR6cejQJHPt4v/6irm+zr1aWOhHHzkhJSCAEsPPvYxDj4ZDHV3LO+iojLRnAB6Dz7lpfvBZ UYcA/2QfAGzfEv7m4MHDp512H/3n5z+/+5df8dz73//kO+7Yt2HD0p+97fc+/rHPmTHYEffYBAB3 p50646yzTlUfvnrptwNf6Rk/VFT57IecMTL5J7ebq0kptcoed9wx5lf//aXLzD/37J746/e4x2ak G+DU7/d6va5Oroavm3nyan/jjT8xfxVVPYKQUik5A9UV2dxfzysu7bk0n57ub0563bLS4iqnDi/+ 2tuwOsADduCTlwW+WVlZXVtbP/30+/3gB9cAuOOOfe/4y394xSufNxgM77j9rrf/+UXRw1J3nggA P047YnXbtpH2h6smdDqjE6Jc4ZNOOl79ec45D3j3e95grqk6hgFs3rzJXH7lldeaf37/+9fozyoy bIagzTf7e93rHr/6ay94ylMec+aZpygX1qyqZOZ56YW3377P3BcFmFTMTDMyZyFTmFFKjEcP1l9r IY4h1TcfjkB/prlIraQOAR4McfmP8bBTcPyxuCU4YvUjH/7M+//hrQ87Z5THe9VV1/3Ob791ygbv ezwGQ3zvpjQ7X1joq3ILiJruyh0/eErwNm5cVn+eeeYpZ555SuQGh/6yxIHxP+HhQKZM6nTuJzxh 10f/6S91nPngwcP79h0YDAYnn3yiyo42Rzrpn5tjpQBMnQWTkGIpV0w6TpYsG1lYrYXy1JezTuZn oWtBDbHCqKkf+/NX4OGn4pkPw7v/I/DNe9/7kVf/jxefeuq9A+lXSXzvBiz2cCTVLFSu8XT1QlUc dAhaCbAWyOuvv/lrX7sicoPXX79327bj1GfP8w4f9k0xaTqsKn9KJSqbeznhhG0f+/i7NmxYAvDh D3/6/771by+//AdqhbX176kmSHvAZga4549lBfSYkGaTaYinr9ZCntmey4xt0v3NSc+F2x73F7UJ 8JV7cfl1OPc0XPIDfNfXp3v48NGXvPh33/u+Nz3piS9LG1O99Cr85O6Uez58+Ojq6ppKSL7XvbYF vtUhaKXTBw6MUo4vu+w7z3vub8RVeTznnAeoD0eOrASGSKl0a8X11++FofEYC/yv/toLlPpecsk3 XvTC1+hBTUtLC4E+afhfIMzhT0j9bv3sZz/h6c94PICTTrongIc//EEXXvQWAHfcse81v/PW9OsQ UiIdJ0Mv7Nq6vbUWNEPOOpkPIRAzb1JzqS+T+x++hDf9In7tSfiTj44G8o655JJvvOXN7/nQh//8 Bc//7VRzMg8lrg325iawb9+B44/fCuDk+wRnkNbyppxjPRvGPe8ZkTIWJjhDCKDnz1pZWb366hvg F2DF4x73cPXhY//8OVNTN2+epHdpXdevCPB7w+k5+yFnnn/+M/WfJ5984sknnwjg+utv1uKaZh1C SiS9+2vUWshFeYOOwGk3imCxW+Zca/VQXy7ZbXfjPf+JjYv4/WeF59D43Ocu+R+vftPv/d4vn3fe I5aWFord89VXj4Lb5577kMBXxx03GkHb7XYBfOubozqDZ599xuLidDPcUPxKDaMCcOml31YvE6aC KtTbAAA9/5dCZ2vDCFyHd6FJ2Xr80Wv/whE7w//d5+TzMq1D5pMq+t/Su79DX62F2Slv0JGCmc85 6boz1oG2m1qTub9xDS78ArZtwut/EaceH/hy795b3/CGv7r44kvDMyTn5EvjkUJnnnnKwx72QL18 cXHhjDPupz6r9KuLL75U/blhw9JLXvJzcRs01DF4izxtPJL4Q//4qfE6k8NRHrPOdr6PMaQYwPNf 8DT9WfvN5i4Cu+v12hafIbZRkQeSMvnZK7DWQsnqS/3NgxCtGfgboO7RVBd/F3/9OSx28YfPxuPO inTizKk5CuHTn/qC/vw3736dnjfqN3/zfD2FhQodf+Url19xxQ/Vkje/5bdNtda4rtvt+nqONY96 1EPVRFp79976oQ+NBNj0gJUA33DDzerPF7/45/QQqV/4hSc///lP09oc6JxWdP1husJDBWQm2pOi GaAi9e2mm3hSAkbJMksHHQGQku5vXhZ6JfYO1ErdAgzgK1fhdR/F/iN4+Xn4g2finsdM/0k+Lr30 29q1PfvsM66+5vP/+m/vvuzrH3vT//5NnXqtw8KvftUbVSbzscdu+sIX3//Xf/MnT33qY88885QH P/j05z//qZ/59/edfvp9dTa14zi6G/gpT3nMx//lXUIIKeWrfv0N+jVC5Vsp1GDi//jcJerPHTvu 9Y1vfvzCi97yxS994MMfefsHP/hvOgtMe8Bm5nagO1kL8EKTC2Q2n3xZuBZTkYx0U0QapW/QUS7K ntKB6puTjpPqlmgmFggwgBvuwB99GJf8AKefhDe/EM9/FDYulrrDV77ij/UklMccs/FpT3vsQx96 5iWXfOM//mOkhaeffj8V+v7yl7/+y7/0WpWPvbi48Cu/8ov/9ql3f+e7n/rmt/7lg//4tic/+dE/ +tH1JxgVEn9yyyXfuvwTt9y6+9Ofee/WrZsHg+GrX/XGT37yv/QK24x8LiXz73nPR/ScVieeeM/z z3/mYx5zzt69t77md96qc9BOOGGUsG3O86wHNCuWlkZ/mqnXpA7a1+ZWdUQp3d/V4motlAqDzzkR QKvdCTsEGMChFbz78/jfH8dtd+OpD8Hbz8dzd2HzhpL2ds01Nzzm0S/8whe+qpd8+tNffM6zX60H Pi0vL+rBRRdd9C8PO+fnP/rRfw+M8QVw8823ra6uXffjm/S8zdu2bXnQg3Zu27ZlZWX1M5/50rm7 fvGv//ofzZ885CFnAlAVIB796J8CcPDg4Sf8zEu//vXv6nW++MWvnfe4l9x55349Vchjx5nS97// yXq100+/n7nlU07ZsbKy6nnejh33Yj0GUihV+fRpfJ21AYbWpz2DJY+KoBUljxIQAqdNW0fdQ1U9 ga7Arp14+k/hhM0YerjsalzyQ3zn+mIeuRDHH7/1xBPveeONt9x2250AlpcXe73u3Xcf6vd7UsrA VFmdTueMM07ZsuUY13Xvumv/7bfvM2dj3rLl2OOP37ply+Zer3vw4OHLL/9B5BiqzZs3HTx4eDAY drudXq9rivrJJ5+4ZcuxN998m556evPmTevrg9XVteXlJVU8eMOG5eFwePToigpl68i2EGLjxmUV st60aYOa1DPqiAsJkObsDaw9SFvtLW2vDYgb2l4PHQf9abk2g2ExiVdlpz0DGHqWnNem4jpY7gdv 0ehTGlgq/AsSL0P08DB9b2Tar16W4rEazfVkmwArhMA598MTHoSdJ0AIHDyKv/8CLrt6+g9LNgtA 3a2VDeJngw15qOCWnnqKGiHAovTZnk0We1NEcehhpYjZnh2U7ld5zL3KzfKC0UPfTgF2BbYmrRRh UFXsvQtf/gG+chWOrmHrRjzy/vj8t0vyg1NTe3OJguSzBVvID22YYkCl0x6403JtvCbUWtBw1smc 9LvZ5iL1UXsDlfbntnrAYU44DnceNAce1AE9YHtsyIMNt7QNNsCOWxoAsJBYY05KrKyhkNfvTgXq y+BzPhyBDQv+p6OdHnB9U1Fm5eZ9VjQThJDCcUSi+qq05yJ2VIHvyymf87PYs+DdtAqalWA2F5eE kLkjOfjsq7WQA9epogmpuZus+fS6LSt5lECzBJgQ0jqESJrmd31QXK2FAjYzBXb95kQI9JsTl80N BZgQMqGGKFOC+zsYYm00G6vVtRYULHmUn8VuW2edjIQCTAgZUU+1tzj3d+g1o9aCZljFTtpMS0se JUABJoQAtalvTL+sbNSgI6hJr+j+5qC9JY8SoAATQoC61CMy/iyBlfUpA0BSUo36ctbJ/CzMV/BZ QQEmhNRE3IxUq+tjPcunatWoL6i+uem4LS55lMAc5ZsRQuyiE9X+rJq1FnK4RG4lac8APE67kQ+h Bv7OI/SACSkby5vn+swLT0q1PsSgoLTnauKZEsXMEDLPLEybA7y9UIAJKRt7GxdRr/oGNHLoYa2Q SkdVpT0D8Ci/+XBd9OYx+KygABMyp9ST9qwJDDgpsNZCZRVkPWl7dMN+5mbWyUgowITMIzWrr+PP kJLAyloBac+VDToCM5+LYKELd37VFxRgQirBupa6ZoMC6VeG+uaiMvUF1Tc3rkB/7gb+BqAAEzJv WKAcZvrVZNBRPipWX846mZPFft0W1A8FmJAKsCrOVvdTb6YorxVUa6GyQUcKur856SeWf54beAoI mSMEUL8HrNOvBkOsN2rQkYIFB3PiMPg8ggJMyJwgak680qj4c1G1FqocdASAUz7nZ7FnV0ioPijA hMwFwpJOS1dAiCJrLVQ26EhB9zcnvbkreZQABZiQucAK9QXgupCyYbUWNOz6zYkQWJjTWScjoQAT Qiqk42B1UIyShWeyLBUO/M3P4jyWPEqAAkwIqQrXwdqwmChu9Tm0nHUyJx0XXZb/8UEBJoRUhYCu tZALp9pBR+Csk7kRYm5LHiVAASaktVgX7BsP+c1VBMIRVRfPkZLB57wszm/JowQowIS0E1sGHYUQ gJz53UBUO+hIQfXNScdFj8HnCCjAhLQQa9UXeUZDVVlrQcPgc34YfI6BAkxIC7FYMnL4r9WrLzOf 87PQ46yTcfC8ENIyWioYtTTiVN+cuA4WOOtkLBRgQlpGG1NdKq61oJC54uUEEFhiyaMkKMCEkNJp Uq2FEYLub176HQafk+HZIaQd2DvDUJNqLYwQkKz4mw+Hs05OhwJMSBuwpdZCiIbVWhjtV7LoQl6W +q3sDCkWCjAhbcBO9UVO9a0lgOk6esIQMiO9LksepYECTAixkjrUVzgOhhz4mw+Hs06mhQJMCLGP WtRXCFnUbNXzzCKDz2mhABNCyiCHF1nLoCMB2XGxRvXNR9dFl8HntFCACWkq1roZQv8zA/UMOgI6 LtaHtqayNQQhsMiBvxmgABPSSKyd7bmBg46AjgspmXuVl8UuSx5lggJMSPNop/rWNejIdeEIrA1t PakNoeOw5FFWKMCENA9rhSKXYbUkXrkOXCHXh5z3KheCs07OAgWYEFII+QSsU8+gI+k68KRYZ+5V PhYYfJ4FCjAhpBAaVWdQDTpSqr82qH7vrcJ10GfJo1mgABNCasWpZdDRWH0HHoPPeWHweVYowIQ0 A2sDfHkrHdVSa6HjQAhIYJ3ubz4Wuix5NDM8cYQ0gPamPdcy6MgZDTVeG1h6WpuCKxh8zgMFmBDb sVZ90dBaC0r1Bx5LHuVlqW9xGcwGQAEmxHasVd9c1FNrQYz2KyWY+ZyTPkse5YUCTIjNtFN86xl0 JBypBWONs07mwxFYZPA5LxRgQmymjU+oW0fQUgjZHZ/MIYPPuWHwuQja+HgT0goEYKcHnDftuYaG W0yCpRIseZSXXocljwqBAkyIhQhrE68aWGtBDToa/8WSRzkRAouFfzvXAAABf0lEQVS9uo1oCRRg QqxD2CoRjay10HEmqu9JDOj+5mOpx1kni4ICTIh12Km+aOCgI+E6PrXgrJM56bgseVQgFGBCSPnU M+jIkeZ+WfIoJwJYZvC5SCjAhJCScZ3qJ9Kc1FpQeBz4m5vFXj2dCO2FZ5MQUiauqKGZCagvGHzO TcdFn8HngqEAE2IF1qa1iDxd0vXWWtCss+RRbpZ6Ft+kTYUCTEj92D3oaNZm16llzg2BjutTXylZ 8igncqHHkkdlwHNKSM1Yq77IMxqqrkFHgbRnMPicG9cRCww+lwIFmJCasVV9kSvkWEvileMEHbWB h6HFJ7gRLPU462RJUIAJIUXjilrUV3b8jpoEg895YcmjMqEAE0KKpnqHSTiy4wSjCWsDm8MLDcDh rJPlQgEmhPgoQDyr1l8HHSe416FkyaO8LC0w+FwqFGBCasDaVq2AjLCqj02g6wR1QjL3Kje9Lkse lQ0FmJCqsTbt2VrDkuhE1TdkyaOcCIElBp9L5/8DVQnRDPkysQUAAAAASUVORK5CYII= "
648 id="image17-3"
649 x="-614.61957"
650 y="-372.38272"
651 inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/assets/dfd-rice/install-00.png"
652 inkscape:export-xdpi="75"
653 inkscape:export-ydpi="75" />
654 <image
655 width="169.33334"
656 height="127"
657 preserveAspectRatio="none"
658 xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAIAAAAVFBUnAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAP jElEQVR4nO3dwZai2gFAUTurBvm8DP1Eh/m8DDLIoFZ8PgQK8KBo7b0yqK5GuIIt513Q/DmdLicA ADr/ePUAAAA+jcACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMAC AIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJ LACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACA mMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMAC AIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJ LACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACA mMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMAC AIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJ LACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACA mMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMAC AIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJ LACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACA mMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMAC AIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJ LACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACA mMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMAC AIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJ LACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACA mMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACA2Nfa B1wuewwDjut8Pl+87vmtvP75bc7nZj1msAAAYgILACAmsODY7merq/nrbaa2/vg4X/u8AFICCyL6 YIlX7aXz+XcdoF/1ZOGQBBa8m213HD//jLt2nLveSe02beC5Vn+KEFjtNm5uz/Q//v4+C77/arDw 5TL+kJn1bBvnYD1rxzn1V/O/HGxiyfMdHdJyq47X7Uhun8XacVbLz+znav8ACzwUWGez0PCj7xPh /R+X/P7+n9jtOXV0E1Pr+fGEunY8a8c5+qxnlp8az9TPM8uvsvZ4ne6e2vwhCJ/X6M9T+/mB/eOt nt8g/zqSR2ewfD8KH2+vs8uSfzujObVtVclKpsazcJyVqUR72rZ2euwzL6queaz3eT7eHu/zLhHC 6xxtYuBo41nr3cc/JXlegyuYwM4EFrzI/SWb1tQNPa8az97effwzqiS6Xj0M1wlMEFjw0ZxHGZi/ GQ6I+JoGOIDl3965Yc0bvgJq7XiONl0UjueRVe2xWzav82jHCD6dGSzojH5ubnAD+O1Hz+4/4T/z 8+36l1zlWfupsbXj2TbO0TuBRpef2m9rxz8/nvn1nCaO15Lx3A9p23o2bPc0tp+3rQfY6s/ptO6f 2d/fFf2/rPP53vV1Xn1tAdt8yg5/19c/rHH7Oq9me81gwYcyYwHwOgILfvDG//n+viP/AJ+y89/4 9Q8bTU1hrfu34CZ3AICYwAIAiAksAICYwAIAiAksAICYwAIAiAksAICYwAIAiAksAICYwAIAiAks AICYwAIAiAksAICYwAIAiAksAIDY1+5bOJ933wRwbOfT5dVDAH6py4vefsxgAQDEBBYAQExgAQDE BBZwFP/5778Gf7z+7/73U48COIL9b3IHWOC+ov759e/7Pw5+GCwGcBBmsIDX00nAhzGDBbzYqrr6 nrW6/iDLgGMSWMArTUXSNaSufxz8rK6AIxNYwBFN3YMF8BYEFvBig48ELgmp6x3up79PbgEchMAC XmnDNNXg84Mmt4AD8ilCAICYGSzgiKZucr/OV7lECByZwAKOYpBKU58unF8A4AhcIgQAiO0/g3W5 7L4J4Ni8CwC/jRksAICYwAIAiAksAICYwAIAiAksAICYwAIAiAksAICYwAIAiAksAICYwAIAiAks AICYwAIAiAksAICYwAIAiAksAICYwAIAiAksAICYwAIAiH1UYJ3P50OtZ+0mzufzEzY95YWbZsbe x+V+/V4JAI/7esI2Bu/Xl8tl4aMWLvkZ3uX5fh/NPYZ6f15/5KWydpyrlr8d6pOP2nXTo9t9l1cR wMd7RmCd/n4y2O8cUK1223pWPa/3PQteLpf9Zjg27JapucDvVS08KKuWHyzzzKaZ31Z1XN73xQlw HE8KrCmjMwHXXw4mFb7PLlP/BT86AzG1/pkT5P16ZrY7P50wZflkyaqZktvB3O+60fVMPam1AfHj +peMf4PBobn95XWjP45/7fLbxnn9+f6gzByv5QdidFf8OJ7HZ/4AGPXKwJo6kc/MJdz+crDA/Il2 aoX3Rs9So9udGcyqTcwH5arxDwZ2PemOrmcw/oWDv7dk/QvHv9ZbdMDMfvjxeC0PplUXQ2fWv+sM JcDv8aTAqmYyXnVC3XW7Cy9O7T2GvU+r+Yzdq6zdVw++4Edb/DQd4o+sH4DKU+/Buj8TPPLmvvaE ffvAtffovMT9laNvm28G38/Mfj4tHv/9Yq99XjP7efQy6Mzye9wdteTS58zDAdjVUy8R3l+u2vsd /2mzPjtt6FqBp4mz+0FMDeldxj9q7Tinlh+9ya81mOUaDVYAnunFN7l/gCecxo4/2Tbv3cd/cHvf 6AbABs/+otGZez72vhdkcP/K+XxOzkbn/3twPaNrzte5dlsbxjBzyWzbGK5/u3CFt6+x0avSg/XM L//jmNcuv3zhDcuv5QYsgJ28cgZrEFuDE9XUHTyjRj+IN7/+5euZWXjXyYMN41+1nsElzh9/Pq3c z2vHHx6vVS+eDcuvujQ8sz9XLb/H62HJ8QVggz+n09obTf76+Zdfj1gbWG9xZz0A/DbLvh9n3Ynb PVjbbZ6hUVcA8NkE1kOqD5oBAJ/k2Te5AwB8PIEFABATWAAAMYEFABATWAAAMYEFABATWAAAMYEF ABATWAAAMYEFABATWAAAMYEFABATWAAAMYEFABATWAAAMYEFABATWAAAMYEFABATWAAAMYEFABAT WAAAMYEFABD7evDx5/M5GQcAwMd4KLAul0s1DgCAj+ESIQBATGABAMQEFgBATGABAMQEFgBATGAB AMQEFgBA7M/pVH2XlW8cBQA+1bpeMoMFABATWAAAMYEFABATWAAAMYEFABATWAAAMYEFABATWAAA MYEFABATWAAAMYEFABATWAAAMYEFABATWAAAMYEFABD7czpdXj0GAICPYgYLACAmsAAAYgILACAm sAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAA YgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgIL ACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAm sAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAA YgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgIL ACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAm sAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAA YgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgIL ACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAm sAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAA YgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgIL ACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAm sAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAA YgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgIL ACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAm sAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAA YgILACD29eoBAAC8r/Pob81gAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDE BBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQAAAAAAAAAAAAAAAAAAAAAAAADAB/gfm8Fj1ALsE0sA AAAASUVORK5CYII= "
659 id="image29-6"
660 x="-445.28625"
661 y="-372.38272"
662 inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/assets/dfd-rice/install-00.png"
663 inkscape:export-xdpi="75"
664 inkscape:export-ydpi="75" />
665 </g>
666 <g
667 id="g513"
668 transform="translate(1043.4871,32.342183)"
669 inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/assets/dfd-rice/install-03.png"
670 inkscape:export-xdpi="75"
671 inkscape:export-ydpi="75">
672 <image
673 width="169.38"
674 height="127.035"
675 preserveAspectRatio="none"
676 xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAIAAAAVFBUnAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAg
677AElEQVR4nO3dsbarOJcuUNcdFfyP16Ef0WE/Xgcd3GB3uXwMkiXxAcJ7zlGBy1uWloQQy4A5f91u 559AElEQVR4nO3dsbarOJcuUNcdFfyP16Ef0WE/Xgcd3GB3uXwMkiXxAcJ7zlGBy1uWloQQy4A5f91u
678jxsAADn/7+wAAAC+jQQLACBMggUAECbBAgAIk2ABAIRJsAAAwiRYAABhEiwAgDAJFgBAmAQLACBM 560jxsAADn/7+wAAAC+jQQLACBMggUAECbBAgAIk2ABAIRJsAAAwiRYAABhEiwAgDAJFgBAmAQLACBM
679ggUAECbBAgAIk2ABAIRJsAAAwiRYAABhEiwAgDAJFgBAmAQLACBMggUAECbBAgAIk2ABAIRJsAAA 561ggUAECbBAgAIk2ABAIRJsAAAwiRYAABhEiwAgDAJFgBAmAQLACBMggUAECbBAgAIk2ABAIRJsAAA
@@ -859,15 +741,8 @@ evzAuf540OjAatKYW+x9dPmJvN7KM7aP19fGWm8p+bFYpUBlbF9ft8efirmx/Ja+33beLlu0NDE8
8596uX4lMazN/7ecR4Yn7eDaL2/9XFe3umy93a5LY6dLU1sj3PLdmmZD6U4b4Xt1dtuqf7g/tW1X1T6 7416uX4lMazN/7ecR4Yn7eDaL2/9XFe3umy93a5LY6dLU1sj3PLdmmZD6U4b4Xt1dtuqf7g/tW1X1T6
8602xVnSzCN8QMs/XW7Pc6OYS77nWz7hReJgoweAFO6r77rH3t+5yg+J9sFAAAAAAAAAAAAAAAAAAAA 7422xVnSzCN8QMs/XW7Pc6OYS77nWz7hReJgoweAFO6r77rH3t+5yg+J9sFAAAAAAAAAAAAAAAAAAAA
861AAAAAKDq/wP4EB/RpJmzCAAAAABJRU5ErkJggg== 743AAAAAKDq/wP4EB/RpJmzCAAAAABJRU5ErkJggg==
862" 744" id="image382" x="-1201.4072" y="264.93607" />
863 id="image382" 745 <image width="169.3797" height="127.03477" preserveAspectRatio="none" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAIAAAAVFBUnAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAg
864 x="-1201.4072"
865 y="264.93607" />
866 <image
867 width="169.3797"
868 height="127.03477"
869 preserveAspectRatio="none"
870 xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAIAAAAVFBUnAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAg
871AElEQVR4nO3dzbKjOLYGUPJGDurxesgjMuzH60EP7sDZJAeQkMTm12tFRYUTYyEw4O9Isvyr64YO 746AElEQVR4nO3dzbKjOLYGUPJGDurxesgjMuzH60EP7sDZJAeQkMTm12tFRYUTYyEw4O9Isvyr64YO
872AIA4/3d1BQAA3kbAAgAIJmABAAQTsAAAgglYAADBBCwAgGACFgBAMAELACCYgAUAEEzAAgAIJmAB 747AIA4/3d1BQAA3kbAAgAIJmABAAQTsAAAgglYAADBBCwAgGACFgBAMAELACCYgAUAEEzAAgAIJmAB
873AAQTsAAAgglYAADBBCwAgGACFgBAMAELACCYgAUAEEzAAgAIJmABAAQTsAAAgglYAADBBCwAgGAC 748AAQTsAAAgglYAADBBCwAgGACFgBAMAELACCYgAUAEEzAAgAIJmABAAQTsAAAgglYAADBBCwAgGAC
@@ -1023,22 +898,10 @@ Dcd59Thc6KD35Vo3PP+PdrfzqtbT6w9c68dEow13k8JscfSny6fm+a2MddvsX2vbesmam6tlVsgc
1023Pg+i0tVyW23r15ZTXrd//vetq8xg6uXxSR3P2vrXHueG4zP7EM3vb/44L0e6HP2+dIvPzpJN7K/n 898Pg+i0tVyW23r15ZTXrd//vetq8xg6uXxSR3P2vrXHueG4zP7EM3vb/44L0e6HP2+dIvPzpJN7K/n
1024nvel5HxI1bNLvF+1202VH3h9VV0Xmf2tqmdJZQrrD7D0q+uGq+twL8c1tn1hJ1EgRw+AW+pXl/qx 899nvel5HxI1bNLvF+1202VH3h9VV0Xmf2tqmdJZQrrD7D0q+uGq+twL8c1tn1hJ1EgRw+AW+pXl/qx
10255zmf4vfkfQEAAAAAAAAAAAAAAAAAAAAAAAAAyPp/bzD23bYiiR0AAAAASUVORK5CYII= 9005zmf4vfkfQEAAAAAAAAAAAAAAAAAAAAAAAAAyPp/bzD23bYiiR0AAAAASUVORK5CYII=
1026" 901" id="image394" x="-1032.0272" y="264.93607" />
1027 id="image394" 902 </g>
1028 x="-1032.0272" 903 <g id="g557" transform="translate(1003.0351,-73.34192)" inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/dfd-rice/install-04.png" inkscape:export-xdpi="75" inkscape:export-ydpi="75">
1029 y="264.93607" /> 904 <image width="169.38" height="127.035" preserveAspectRatio="none" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAIAAAAVFBUnAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAg
1030 </g>
1031 <g
1032 id="g557"
1033 transform="translate(1003.0351,-73.34192)"
1034 inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/assets/dfd-rice/install-04.png"
1035 inkscape:export-xdpi="75"
1036 inkscape:export-ydpi="75">
1037 <image
1038 width="169.38"
1039 height="127.035"
1040 preserveAspectRatio="none"
1041 xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAIAAAAVFBUnAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAg
1042AElEQVR4nO3dO5bjOLYFUOVbadTw2tQQZfbw2mjjGdGlUvIDAeAhCUp7rzKiFBRwCfBzgpSYv263 905AElEQVR4nO3dO5bjOLYFUOVbadTw2tQQZfbw2mjjGdGlUvIDAeAhCUp7rzKiFBRwCfBzgpSYv263
1043xw0AgJz/O7sAAIBPI2ABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlY 906xw0AgJz/O7sAAIBPI2ABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlY
1044AABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlY 907AABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlY
@@ -1204,15 +1067,8 @@ Hw8a7TiaVGaLvc8uP5WXe3nW9vb+Wl/vNUu+XaywQGFsX3+urz9Vc+XyW9b9tvO8bFHTRff237E9
1204jWdr/a3j3DE+k5NoeX3L4zz/pMve83KbnTtruthe55Z5qdke1uq8rcxXa79r7Qf3r6b9orC+TXXW 1067jWdr/a3j3DE+k5NoeX3L4zz/pMve83KbnTtruthe55Z5qdke1uq8rcxXa79r7Qf3r6b9orC+TXXW
1205FFNZP8Dcr9vtcXYNY9nvYtsX3iQKMnoADOm++Kp/7HnKWXxM5gUAAAAAAAAAAAAAAAAAAAAAAAAA 1068FFNZP8Dcr9vtcXYNY9nvYtsX3iQKMnoADOm++Kp/7HnKWXxM5gUAAAAAAAAAAAAAAAAAAAAAAAAA
1206oOj/AZvLm3jv9XPLAAAAAElFTkSuQmCC 1069oOj/AZvLm3jv9XPLAAAAAElFTkSuQmCC
1207" 1070" id="image539" x="-1160.9553" y="563.78479" />
1208 id="image539" 1071 <image width="169.38" height="127.035" preserveAspectRatio="none" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAIAAAAVFBUnAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAg
1209 x="-1160.9553"
1210 y="563.78479" />
1211 <image
1212 width="169.38"
1213 height="127.035"
1214 preserveAspectRatio="none"
1215 xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAIAAAAVFBUnAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAg
1216AElEQVR4nO3dzbajOJoFUEevGOTj1dCP6GE9Xg1q0IOb5SQAyRIcfr336tXrlgNLH0KGY8Dkr8fj 1072AElEQVR4nO3dzbajOJoFUEevGOTj1dCP6GE9Xg1q0IOb5SQAyRIcfr336tXrlgNLH0KGY8Dkr8fj
12179QAAIOf/ji4AAOBuBCwAgDABCwAgTMACAAgTsAAAwgQsAIAwAQsAIEzAAgAIE7AAAMIELACAMAEL 10739QAAIOf/ji4AAOBuBCwAgDABCwAgTMACAAgTsAAAwgQsAIAwAQsAIEzAAgAIE7AAAMIELACAMAEL
1218ACBMwAIACBOwAADCBCwAgDABCwAgTMACAAgTsAAAwgQsAIAwAQsAIEzAAgAIE7AAAMIELACAMAEL 1074ACBMwAIACBOwAADCBCwAgDABCwAgTMACAAgTsAAAwgQsAIAwAQsAIEzAAgAIE7AAAMIELACAMAEL
@@ -1366,22 +1222,10 @@ Py8LGm/8fC3rbs+UI1EBEePHNLRcWxket0bHsNE//fyRSlfTvpYt39tOe21//e9XV5WbqafjUxrP
13663vp7x3nB+IwOovX1rY/z9E6XrbfLY3LsbOlifZ1rtkvLfCjV+Shsr95+S+0HP19dn4vK+nbV2VJM 12223vp7x3nB+IwOovX1rY/z9E6XrbfLY3LsbOlifZ1rtkvLfCjV+Shsr95+S+0HP19dn4vK+nbV2VJM
1367Y/0AU78ej9fRNZzLdifbvvAiUZDRA+CUnrOv+o89jzmKn5PtAgAAAAAAAAAAAAAAAAAAAAAAAABQ 1223Y/0AU78ej9fRNZzLdifbvvAiUZDRA+CUnrOv+o89jzmKn5PtAgAAAAAAAAAAAAAAAAAAAAAAAABQ
13689f+dHPt315dAmAAAAABJRU5ErkJggg== 12249f+dHPt315dAmAAAAABJRU5ErkJggg==
1369" 1225" id="image551" x="-991.57532" y="563.78479" />
1370 id="image551" 1226 </g>
1371 x="-991.57532" 1227 <g inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/dfd-rice/install-05.png" inkscape:export-xdpi="75" inkscape:export-ydpi="75" id="g658" transform="translate(-4.0751145)">
1372 y="563.78479" /> 1228 <image width="169.38" height="127.035" preserveAspectRatio="none" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAIAAAAVFBUnAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAZ
1373 </g>
1374 <g
1375 inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/assets/dfd-rice/install-05.png"
1376 inkscape:export-xdpi="75"
1377 inkscape:export-ydpi="75"
1378 id="g658"
1379 transform="translate(-4.0751145)">
1380 <image
1381 width="169.38"
1382 height="127.035"
1383 preserveAspectRatio="none"
1384 xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAIAAAAVFBUnAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAZ
13853klEQVR4nO3du7ajRrsFUPUZHfjx/lCPqNCP58DBCWTLbC6lqmIhQMw5HMgSqvoobmsDon/dbo8b 12293klEQVR4nO3du7ajRrsFUPUZHfjx/lCPqNCP58DBCWTLbC6lqmIhQMw5HMgSqvoobmsDon/dbo8b
1386AAA5/7d3AQAA30bAAgAIE7AAAMIELACAMAELACBMwAIACBOwAADCBCwAgDABCwAgTMACAAgTsAAA 1230AAA5/7d3AQAA30bAAgAIE7AAAMIELACAMAELACBMwAIACBOwAADCBCwAgDABCwAgTMACAAgTsAAA
1387wgQsAIAwAQsAIEzAAgAIE7AAAMIELACAMAELACBMwAIACBOwAADCBCwAgDABCwAgTMACAAgTsAAA 1231wgQsAIAwAQsAIEzAAgAIE7AAAMIELACAMAELACBMwAIACBOwAADCBCwAgDABCwAgTMACAAgTsAAA
@@ -1499,15 +1343,8 @@ TRfd63/H+lDj7fbS0Xjl9tXX3SdTjkQFRIwf01BzbWV43Bodw0YfPV+k0tW0r77pW9upr+2Pf391
1499VbiZejo+S+PZWn/rOHeMz+ggWp7f8jhP73TZerncJsfOmi7W17lmudSsD0t13haWV2u/S+0Ht6+m 1343VbiZejo+S+PZWn/rOHeMz+ggWp7f8jhP73TZerncJsfOmi7W17lmudSsD0t13haWV2u/S+0Ht6+m
15007aIwv0111hRTWT/A1K/b7bF3Dcey3cm2C14kCjJ6ABzSffZd/9jzmKP4MVkuAAAAAAAAAAAAAAAA 13447aIwv0111hRTWT/A1K/b7bF3Dcey3cm2C14kCjJ6ABzSffZd/9jzmKP4MVkuAAAAAAAAAAAAAAAA
1501AAAAAAAAAABF/w+B/c/UXnPWXgAAAABJRU5ErkJggg== 1345AAAAAAAAAABF/w+B/c/UXnPWXgAAAABJRU5ErkJggg==
1502" 1346" id="image640" x="-153.84512" y="683.60748" />
1503 id="image640" 1347 <image width="169.38" height="127.035" preserveAspectRatio="none" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAIAAAAVFBUnAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAI
1504 x="-153.84512"
1505 y="683.60748" />
1506 <image
1507 width="169.38"
1508 height="127.035"
1509 preserveAspectRatio="none"
1510 xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAIAAAAVFBUnAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAI
1511CUlEQVR4nO3c0ZKjKhAAUHcq3+hH8pX7kHtTLGgLaoJmznlJVGxbmap0AeM0AQAAAAAAAAAAAAAA 1348CUlEQVR4nO3c0ZKjKhAAUHcq3+hH8pX7kHtTLGgLaoJmznlJVGxbmap0AeM0AQAAAAAAAAAAAAAA
1512AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwTVNK6WCDm/qO+zrefd/xHADgfX6maUqZ 1349AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwTVNK6WCDm/qO+zrefd/xHADgfX6maUqZ
15130flsWEy1SPu1uba/jhk3GG4z829y4s1+5fMB4BYez495np9fUkqv77sdj7CoyC3fPCXtTR+4RO2C 13500flsWEy1SPu1uba/jhk3GG4z829y4s1+5fMB4BYez495np9fUkqv77sdj7CoyC3fPCXtTR+4RO2C
@@ -1545,10 +1382,7 @@ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1545AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1382AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1546AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1383AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1547AAAAYJC/HlulbQuPF2AAAAAASUVORK5CYII= 1384AAAAYJC/HlulbQuPF2AAAAAASUVORK5CYII=
1548" 1385" id="image652" x="15.534883" y="683.60748" />
1549 id="image652" 1386 </g>
1550 x="15.534883" 1387 </g>
1551 y="683.60748" />
1552 </g>
1553 </g>
1554</svg> 1388</svg>
diff --git a/assets/dfd-rice/layout.png b/static/dfd-rice/layout.png
index a44d2cd..a44d2cd 100644
--- a/assets/dfd-rice/layout.png
+++ b/static/dfd-rice/layout.png
Binary files differ
diff --git a/static/dfd-rice/layout.svg b/static/dfd-rice/layout.svg
new file mode 100644
index 0000000..5a9031c
--- /dev/null
+++ b/static/dfd-rice/layout.svg
@@ -0,0 +1,28 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!-- Created with Inkscape (http://www.inkscape.org/) -->
3
4<svg width="210mm" height="297mm" viewBox="0 0 210 297" version="1.1" id="svg5" inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)" sodipodi:docname="layout.svg" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
5 <sodipodi:namedview id="namedview7" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageshadow="2" inkscape:pageopacity="0.0" inkscape:pagecheckerboard="0" inkscape:document-units="mm" showgrid="false" inkscape:zoom="0.08" inkscape:cx="1143.75" inkscape:cy="1893.75" inkscape:window-width="2305" inkscape:window-height="752" inkscape:window-x="873" inkscape:window-y="136" inkscape:window-maximized="0" inkscape:current-layer="layer1" />
6 <defs id="defs2" />
7 <g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1">
8 <g id="g2012" inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/dfd-rice/layout.png" inkscape:export-xdpi="6.6072011" inkscape:export-ydpi="6.6072011">
9 <rect style="fill:#e6e6e6;stroke:#303030;stroke-width:0.447874;stroke-linecap:round;stroke-linejoin:miter;paint-order:stroke fill markers" id="rect1454" width="1360.1339" height="1074.3162" x="-360.50458" y="-265.69751" ry="0" />
10 <rect style="fill:#e6e6e6;stroke:#303030;stroke-width:0.261189;stroke-linecap:round;stroke-linejoin:miter;paint-order:stroke fill markers" id="rect1456" width="1058.4567" height="469.50305" x="1025.9943" y="-265.79086" ry="0" />
11 <text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:51.606px;line-height:1.25;font-family:sans-serif;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:1.29015" x="1407.4224" y="-12.228849" id="text7667-3">
12 <tspan sodipodi:role="line" id="tspan7665-6" style="font-weight:bold;stroke-width:1.29015;fill:#4d4d4d" x="1407.4224" y="-12.228849">TERMINAL</tspan>
13 </text>
14 <rect style="fill:#e6e6e6;stroke:#303030;stroke-width:0.289748;stroke-linecap:round;stroke-linejoin:miter;paint-order:stroke fill markers" id="rect1458" width="1058.4564" height="577.78894" x="1028.7416" y="230.8085" ry="0" />
15 <rect style="fill:#e6e6e6;stroke:#303030;stroke-width:0.447874;stroke-linecap:round;stroke-linejoin:miter;paint-order:stroke fill markers" id="rect135" width="1360.1339" height="1074.3162" x="-1747.0968" y="-265.69751" ry="0" />
16 <text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:51.606px;line-height:1.25;font-family:sans-serif;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:1.29015" x="-1214.8931" y="290.24585" id="text3280">
17 <tspan sodipodi:role="line" id="tspan3278" style="font-weight:bold;stroke-width:1.29015;fill:#4d4d4d" x="-1214.8931" y="290.24585">BROWSER</tspan>
18 </text>
19 <rect style="fill:none;stroke:none;stroke-width:10;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" id="rect31" width="3834.2903" height="1074.2903" x="-1747.0922" y="-265.69287" ry="0" />
20 <text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:51.606px;line-height:1.25;font-family:sans-serif;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:1.29015" x="121.84438" y="290.24585" id="text7667">
21 <tspan sodipodi:role="line" id="tspan7665" style="font-weight:bold;stroke-width:1.29015;fill:#4d4d4d" x="121.84438" y="290.24585">CODE EDITOR</tspan>
22 </text>
23 <text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:51.606px;line-height:1.25;font-family:sans-serif;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:1.29015" x="1410.1696" y="538.51349" id="text12264">
24 <tspan sodipodi:role="line" id="tspan12262" style="font-weight:bold;stroke-width:1.29015;fill:#4d4d4d" x="1410.1696" y="538.51349">TERMINAL</tspan>
25 </text>
26 </g>
27 </g>
28</svg>
diff --git a/assets/dfd-rice/script.png b/static/dfd-rice/script.png
index 09be37a..09be37a 100644
--- a/assets/dfd-rice/script.png
+++ b/static/dfd-rice/script.png
Binary files differ
diff --git a/assets/dna-sequence/benchmarks.ods b/static/dna-sequence/benchmarks.ods
index 62a8e30..62a8e30 100644
--- a/assets/dna-sequence/benchmarks.ods
+++ b/static/dna-sequence/benchmarks.ods
Binary files differ
diff --git a/assets/dna-sequence/chart-encoding-speed.png b/static/dna-sequence/chart-encoding-speed.png
index 7fb106d..7fb106d 100644
--- a/assets/dna-sequence/chart-encoding-speed.png
+++ b/static/dna-sequence/chart-encoding-speed.png
Binary files differ
diff --git a/assets/dna-sequence/chart-file-sizes.png b/static/dna-sequence/chart-file-sizes.png
index 31bfa66..31bfa66 100644
--- a/assets/dna-sequence/chart-file-sizes.png
+++ b/static/dna-sequence/chart-file-sizes.png
Binary files differ
diff --git a/assets/dna-sequence/dna-basics.jpg b/static/dna-sequence/dna-basics.jpg
index c2e7f52..c2e7f52 100644
--- a/assets/dna-sequence/dna-basics.jpg
+++ b/static/dna-sequence/dna-basics.jpg
Binary files differ
diff --git a/assets/dna-sequence/quote.png b/static/dna-sequence/quote.png
index 09fb01c..09fb01c 100644
--- a/assets/dna-sequence/quote.png
+++ b/static/dna-sequence/quote.png
Binary files differ
diff --git a/assets/dna-sequence/sample-binary-file.png b/static/dna-sequence/sample-binary-file.png
index 1e4622a..1e4622a 100644
--- a/assets/dna-sequence/sample-binary-file.png
+++ b/static/dna-sequence/sample-binary-file.png
Binary files differ
diff --git a/assets/dna-sequence/sample.png b/static/dna-sequence/sample.png
index 30f12da..30f12da 100644
--- a/assets/dna-sequence/sample.png
+++ b/static/dna-sequence/sample.png
Binary files differ
diff --git a/assets/dna-synthesized/bison/in.txt b/static/dna-synthesized/bison/in.txt
index fd1eea6..fd1eea6 100644
--- a/assets/dna-synthesized/bison/in.txt
+++ b/static/dna-synthesized/bison/in.txt
diff --git a/assets/dna-synthesized/bison/out.mp3 b/static/dna-synthesized/bison/out.mp3
index d6408ca..d6408ca 100644
--- a/assets/dna-synthesized/bison/out.mp3
+++ b/static/dna-synthesized/bison/out.mp3
Binary files differ
diff --git a/assets/dna-synthesized/bison/spectogram.png b/static/dna-synthesized/bison/spectogram.png
index 959902b..959902b 100644
--- a/assets/dna-synthesized/bison/spectogram.png
+++ b/static/dna-synthesized/bison/spectogram.png
Binary files differ
diff --git a/assets/dna-synthesized/elektron/IMG_0619.jpg b/static/dna-synthesized/elektron/IMG_0619.jpg
index ebf60b0..ebf60b0 100755
--- a/assets/dna-synthesized/elektron/IMG_0619.jpg
+++ b/static/dna-synthesized/elektron/IMG_0619.jpg
Binary files differ
diff --git a/assets/dna-synthesized/elektron/IMG_0620.jpg b/static/dna-synthesized/elektron/IMG_0620.jpg
index c9aa398..c9aa398 100755
--- a/assets/dna-synthesized/elektron/IMG_0620.jpg
+++ b/static/dna-synthesized/elektron/IMG_0620.jpg
Binary files differ
diff --git a/assets/dna-synthesized/elektron/IMG_0622.jpg b/static/dna-synthesized/elektron/IMG_0622.jpg
index 98acee4..98acee4 100755
--- a/assets/dna-synthesized/elektron/IMG_0622.jpg
+++ b/static/dna-synthesized/elektron/IMG_0622.jpg
Binary files differ
diff --git a/assets/dna-synthesized/elektron/elektron.mp4 b/static/dna-synthesized/elektron/elektron.mp4
index f8e39b9..f8e39b9 100755
--- a/assets/dna-synthesized/elektron/elektron.mp4
+++ b/static/dna-synthesized/elektron/elektron.mp4
Binary files differ
diff --git a/assets/dna-synthesized/elektron/midi-studio.jpg b/static/dna-synthesized/elektron/midi-studio.jpg
index 59075cd..59075cd 100755
--- a/assets/dna-synthesized/elektron/midi-studio.jpg
+++ b/static/dna-synthesized/elektron/midi-studio.jpg
Binary files differ
diff --git a/assets/dna-synthesized/mouse/in.txt b/static/dna-synthesized/mouse/in.txt
index abd34a2..abd34a2 100644
--- a/assets/dna-synthesized/mouse/in.txt
+++ b/static/dna-synthesized/mouse/in.txt
diff --git a/assets/dna-synthesized/mouse/out.mp3 b/static/dna-synthesized/mouse/out.mp3
index e66e87b..e66e87b 100644
--- a/assets/dna-synthesized/mouse/out.mp3
+++ b/static/dna-synthesized/mouse/out.mp3
Binary files differ
diff --git a/assets/dna-synthesized/mouse/spectogram.png b/static/dna-synthesized/mouse/spectogram.png
index 8b7f63f..8b7f63f 100644
--- a/assets/dna-synthesized/mouse/spectogram.png
+++ b/static/dna-synthesized/mouse/spectogram.png
Binary files differ
diff --git a/assets/dna-synthesized/quote/in.txt b/static/dna-synthesized/quote/in.txt
index 81e8eb9..81e8eb9 100644
--- a/assets/dna-synthesized/quote/in.txt
+++ b/static/dna-synthesized/quote/in.txt
diff --git a/assets/dna-synthesized/quote/out.mp3 b/static/dna-synthesized/quote/out.mp3
index 985871d..985871d 100644
--- a/assets/dna-synthesized/quote/out.mp3
+++ b/static/dna-synthesized/quote/out.mp3
Binary files differ
diff --git a/assets/dna-synthesized/quote/spectogram.png b/static/dna-synthesized/quote/spectogram.png
index c460ffd..c460ffd 100644
--- a/assets/dna-synthesized/quote/spectogram.png
+++ b/static/dna-synthesized/quote/spectogram.png
Binary files differ
diff --git a/assets/dna-synthesized/symphony-no6-1st-movement.mp3 b/static/dna-synthesized/symphony-no6-1st-movement.mp3
index 8c5a609..8c5a609 100644
--- a/assets/dna-synthesized/symphony-no6-1st-movement.mp3
+++ b/static/dna-synthesized/symphony-no6-1st-movement.mp3
Binary files differ
diff --git a/assets/dna-synthesized/symphony-no6-1st-movement.png b/static/dna-synthesized/symphony-no6-1st-movement.png
index 8269f08..8269f08 100644
--- a/assets/dna-synthesized/symphony-no6-1st-movement.png
+++ b/static/dna-synthesized/symphony-no6-1st-movement.png
Binary files differ
diff --git a/assets/dna-synthesized/taurus/in.txt b/static/dna-synthesized/taurus/in.txt
index 8c5bddb..8c5bddb 100644
--- a/assets/dna-synthesized/taurus/in.txt
+++ b/static/dna-synthesized/taurus/in.txt
diff --git a/assets/dna-synthesized/taurus/out.mp3 b/static/dna-synthesized/taurus/out.mp3
index ea7ae1a..ea7ae1a 100644
--- a/assets/dna-synthesized/taurus/out.mp3
+++ b/static/dna-synthesized/taurus/out.mp3
Binary files differ
diff --git a/assets/dna-synthesized/taurus/spectogram.png b/static/dna-synthesized/taurus/spectogram.png
index 3be9b58..3be9b58 100644
--- a/assets/dna-synthesized/taurus/spectogram.png
+++ b/static/dna-synthesized/taurus/spectogram.png
Binary files differ
diff --git a/assets/do-fuse/copy-benchmarks.tsv b/static/do-fuse/copy-benchmarks.tsv
index c7a7af4..c7a7af4 100644
--- a/assets/do-fuse/copy-benchmarks.tsv
+++ b/static/do-fuse/copy-benchmarks.tsv
diff --git a/assets/do-fuse/fuse-droplets.png b/static/do-fuse/fuse-droplets.png
index d7ce243..d7ce243 100644
--- a/assets/do-fuse/fuse-droplets.png
+++ b/static/do-fuse/fuse-droplets.png
Binary files differ
diff --git a/assets/do-fuse/fuse-spaces.png b/static/do-fuse/fuse-spaces.png
index 4dcc1c5..4dcc1c5 100644
--- a/assets/do-fuse/fuse-spaces.png
+++ b/static/do-fuse/fuse-spaces.png
Binary files differ
diff --git a/assets/do-fuse/sqlite-benchmarks.tsv b/static/do-fuse/sqlite-benchmarks.tsv
index daa2c21..daa2c21 100644
--- a/assets/do-fuse/sqlite-benchmarks.tsv
+++ b/static/do-fuse/sqlite-benchmarks.tsv
diff --git a/assets/dropbox-sync/dropbox-spaces.png b/static/dropbox-sync/dropbox-spaces.png
index c90f99f..c90f99f 100644
--- a/assets/dropbox-sync/dropbox-spaces.png
+++ b/static/dropbox-sync/dropbox-spaces.png
Binary files differ
diff --git a/assets/esp8366-micropython/boards.jpg b/static/esp8366-micropython/boards.jpg
index 89e2b30..89e2b30 100644
--- a/assets/esp8366-micropython/boards.jpg
+++ b/static/esp8366-micropython/boards.jpg
Binary files differ
diff --git a/assets/general/alert-dark.svg b/static/general/alert-dark.svg
index d453564..d453564 100644
--- a/assets/general/alert-dark.svg
+++ b/static/general/alert-dark.svg
diff --git a/assets/general/alert-light.svg b/static/general/alert-light.svg
index 86658ec..86658ec 100644
--- a/assets/general/alert-light.svg
+++ b/static/general/alert-light.svg
diff --git a/assets/general/elasticlunr.min.js b/static/general/elasticlunr.min.js
index 94b20dd..94b20dd 100644
--- a/assets/general/elasticlunr.min.js
+++ b/static/general/elasticlunr.min.js
diff --git a/assets/general/favicon.ico b/static/general/favicon.ico
index c6b2ff4..c6b2ff4 100644
--- a/assets/general/favicon.ico
+++ b/static/general/favicon.ico
Binary files differ
diff --git a/assets/general/favicon.png b/static/general/favicon.png
index f94ea94..f94ea94 100644
--- a/assets/general/favicon.png
+++ b/static/general/favicon.png
Binary files differ
diff --git a/assets/go-profiling/golang-profiling-cpu.pdf b/static/go-profiling/golang-profiling-cpu.pdf
index 15241cb..15241cb 100644
--- a/assets/go-profiling/golang-profiling-cpu.pdf
+++ b/static/go-profiling/golang-profiling-cpu.pdf
Binary files differ
diff --git a/assets/go-profiling/golang-profiling-mem.pdf b/static/go-profiling/golang-profiling-mem.pdf
index 822e445..822e445 100644
--- a/assets/go-profiling/golang-profiling-mem.pdf
+++ b/static/go-profiling/golang-profiling-mem.pdf
Binary files differ
diff --git a/assets/goaccess/goaccess-dash-html.png b/static/goaccess/goaccess-dash-html.png
index 917d959..917d959 100644
--- a/assets/goaccess/goaccess-dash-html.png
+++ b/static/goaccess/goaccess-dash-html.png
Binary files differ
diff --git a/assets/goaccess/goaccess-dash-term.png b/static/goaccess/goaccess-dash-term.png
index e3f6357..e3f6357 100644
--- a/assets/goaccess/goaccess-dash-term.png
+++ b/static/goaccess/goaccess-dash-term.png
Binary files differ
diff --git a/assets/helix-editor/editor.png b/static/helix-editor/editor.png
index 2648364..2648364 100644
--- a/assets/helix-editor/editor.png
+++ b/static/helix-editor/editor.png
Binary files differ
diff --git a/assets/iot-application/iot-app-output.png b/static/iot-application/iot-app-output.png
index 1c80589..1c80589 100644
--- a/assets/iot-application/iot-app-output.png
+++ b/static/iot-application/iot-app-output.png
Binary files differ
diff --git a/assets/iot-application/iot-rest-example.png b/static/iot-application/iot-rest-example.png
index 3ed86aa..3ed86aa 100644
--- a/assets/iot-application/iot-rest-example.png
+++ b/static/iot-application/iot-rest-example.png
Binary files differ
diff --git a/assets/iot-application/iot-sqlite-db.png b/static/iot-application/iot-sqlite-db.png
index 82e1e29..82e1e29 100644
--- a/assets/iot-application/iot-sqlite-db.png
+++ b/static/iot-application/iot-sqlite-db.png
Binary files differ
diff --git a/assets/iot-application/kcachegrind.png b/static/iot-application/kcachegrind.png
index 0dc48ab..0dc48ab 100644
--- a/assets/iot-application/kcachegrind.png
+++ b/static/iot-application/kcachegrind.png
Binary files differ
diff --git a/assets/iot-application/profiling-viewer.png b/static/iot-application/profiling-viewer.png
index a450513..a450513 100644
--- a/assets/iot-application/profiling-viewer.png
+++ b/static/iot-application/profiling-viewer.png
Binary files differ
diff --git a/assets/iot-application/simple-iot-application-overview.svg b/static/iot-application/simple-iot-application-overview.svg
index 817666d..817666d 100644
--- a/assets/iot-application/simple-iot-application-overview.svg
+++ b/static/iot-application/simple-iot-application-overview.svg
diff --git a/assets/iot-application/simple-iot-application.zip b/static/iot-application/simple-iot-application.zip
index 46d3205..46d3205 100644
--- a/assets/iot-application/simple-iot-application.zip
+++ b/static/iot-application/simple-iot-application.zip
Binary files differ
diff --git a/assets/iot-application/snakeviz.png b/static/iot-application/snakeviz.png
index 5bab395..5bab395 100644
--- a/assets/iot-application/snakeviz.png
+++ b/static/iot-application/snakeviz.png
Binary files differ
diff --git a/assets/pid1/boxes.mp4 b/static/pid1/boxes.mp4
index eb647ff..eb647ff 100644
--- a/assets/pid1/boxes.mp4
+++ b/static/pid1/boxes.mp4
Binary files differ
diff --git a/assets/pid1/qemu.log b/static/pid1/qemu.log
index 11be312..11be312 100644
--- a/assets/pid1/qemu.log
+++ b/static/pid1/qemu.log
diff --git a/assets/pid1/unikernels.png b/static/pid1/unikernels.png
index 16026ed..16026ed 100644
--- a/assets/pid1/unikernels.png
+++ b/static/pid1/unikernels.png
Binary files differ
diff --git a/static/pid1/unikernels.svg b/static/pid1/unikernels.svg
new file mode 100644
index 0000000..460fb94
--- /dev/null
+++ b/static/pid1/unikernels.svg
@@ -0,0 +1,128 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!-- Created with Inkscape (http://www.inkscape.org/) -->
3
4<svg width="210mm" height="297mm" viewBox="0 0 210 297" version="1.1" id="svg5" inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)" sodipodi:docname="unikernels.svg" inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/pid1/unikernels.png" inkscape:export-xdpi="127.98862" inkscape:export-ydpi="127.98862" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
5 <sodipodi:namedview id="namedview7" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageshadow="2" inkscape:pageopacity="0.0" inkscape:pagecheckerboard="0" inkscape:document-units="mm" showgrid="false" inkscape:zoom="1.4948513" inkscape:cx="431.48104" inkscape:cy="473.6257" inkscape:window-width="1887" inkscape:window-height="913" inkscape:window-x="1859" inkscape:window-y="48" inkscape:window-maximized="0" inkscape:current-layer="layer1" showguides="true" inkscape:guide-bbox="true" />
6 <defs id="defs2" />
7 <g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1">
8 <g id="g98495" inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/pid1/unikernels.png" inkscape:export-xdpi="127.98862" inkscape:export-ydpi="127.98862">
9 <rect style="fill:#ececec;stroke:none;stroke-width:0.318966;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="rect18248" width="65.511665" height="75.571449" x="5.6951494" y="75.506912" inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/pid1/unikernels.png" inkscape:export-xdpi="127.98862" inkscape:export-ydpi="127.98862" />
10 <rect style="fill:#ececec;stroke:none;stroke-width:0.318966;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="rect18418" width="65.511665" height="75.571449" x="72.166878" y="75.506912" inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/pid1/unikernels.png" inkscape:export-xdpi="127.98862" inkscape:export-ydpi="127.98862" />
11 <rect style="fill:#ececec;stroke:none;stroke-width:0.318966;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="rect18420" width="65.511665" height="75.571449" x="138.63863" y="75.506912" inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/pid1/unikernels.png" inkscape:export-xdpi="127.98862" inkscape:export-ydpi="127.98862" />
12 <text xml:space="preserve" style="font-style:normal;font-variant:normal;font-weight:900;font-stretch:normal;font-size:2.82222px;line-height:1.25;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Heavy';fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" x="25.735832" y="144.60236" id="text18439" inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/pid1/unikernels.png" inkscape:export-xdpi="127.98862" inkscape:export-ydpi="127.98862">
13 <tspan sodipodi:role="line" id="tspan18437" style="font-style:normal;font-variant:normal;font-weight:800;font-stretch:normal;font-size:2.82222px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Ultra-Bold';fill:#000000;stroke-width:0.264583" x="25.735832" y="144.60236">VIRTUAL MACHINE</tspan>
14 </text>
15 <g id="g50691" transform="translate(0,-101.60001)" inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/pid1/unikernels.png" inkscape:export-xdpi="127.98862" inkscape:export-ydpi="127.98862">
16 <rect style="fill:#f9f9f9;stroke:none;stroke-width:0.429153;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="rect38097-3" width="50.57568" height="8.4333" x="13.294504" y="213.63496" ry="1.5" />
17 <text xml:space="preserve" style="font-style:normal;font-variant:normal;font-weight:900;font-stretch:normal;font-size:2.46944px;line-height:1.25;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Heavy';fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583" x="24.263063" y="218.54855" id="text32261">
18 <tspan sodipodi:role="line" id="tspan32259" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.46944px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';fill:#4d4d4d;stroke-width:0.264583" x="24.263063" y="218.54855">HOST OS / HYPERVISOR</tspan>
19 </text>
20 </g>
21 <rect style="fill:#f9f9f9;stroke:none;stroke-width:0.499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="rect38097" width="22.000685" height="26.315866" x="13.294504" y="184.14406" ry="1.5" transform="translate(0,-102.12917)" />
22 <text xml:space="preserve" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:0.85;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583" x="24.336025" y="204.21999" id="text38435" transform="translate(0,-102.12917)">
23 <tspan sodipodi:role="line" id="tspan38433" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583" x="24.336025" y="204.48907">VIRTUAL</tspan>
24 <tspan sodipodi:role="line" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583" x="24.336025" y="206.28824" id="tspan38945">MACHINE</tspan>
25 </text>
26 <text xml:space="preserve" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:0.85;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583" x="24.336025" y="198.19913" id="text41165" transform="translate(0,-102.12917)">
27 <tspan sodipodi:role="line" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583" x="24.336025" y="198.19913" id="tspan41163">GUEST OS</tspan>
28 </text>
29 <text xml:space="preserve" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:0.85;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583" x="24.336025" y="189.40337" id="text42587" transform="translate(0,-102.12917)">
30 <tspan sodipodi:role="line" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583" x="24.336025" y="189.67245" id="tspan42585">TARGET</tspan>
31 <tspan sodipodi:role="line" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583" x="24.336025" y="191.47162" id="tspan42611">SOFTWARE</tspan>
32 </text>
33 <g id="g50696" transform="translate(0,-99.483339)" inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/pid1/unikernels.png" inkscape:export-xdpi="127.98862" inkscape:export-ydpi="127.98862">
34 <rect style="fill:#f9f9f9;stroke:none;stroke-width:0.429153;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="rect48544" width="50.57568" height="8.4333" x="13.294504" y="223.15991" ry="1.5" />
35 <text xml:space="preserve" style="font-style:normal;font-variant:normal;font-weight:900;font-stretch:normal;font-size:2.46944px;line-height:1.25;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Heavy';fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583" x="31.535746" y="228.24654" id="text47169">
36 <tspan sodipodi:role="line" id="tspan47167" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.46944px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';fill:#4d4d4d;stroke-width:0.264583" x="31.535746" y="228.24654">HARDWARE</tspan>
37 </text>
38 </g>
39 <g id="g48202" transform="translate(28.574999,-102.12917)" inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/pid1/unikernels.png" inkscape:export-xdpi="127.98862" inkscape:export-ydpi="127.98862">
40 <rect style="fill:#f9f9f9;stroke:none;stroke-width:0.499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="rect48184" width="22.000685" height="26.315866" x="13.294504" y="184.14406" ry="1.5" />
41 <text xml:space="preserve" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:0.85;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583" x="24.336025" y="204.21999" id="text48190">
42 <tspan sodipodi:role="line" id="tspan48186" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583" x="24.336025" y="204.48907">VIRTUAL</tspan>
43 <tspan sodipodi:role="line" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583" x="24.336025" y="206.28824" id="tspan48188">MACHINE</tspan>
44 </text>
45 <text xml:space="preserve" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:0.85;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583" x="24.336025" y="198.19913" id="text48194">
46 <tspan sodipodi:role="line" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583" x="24.336025" y="198.19913" id="tspan48192">GUEST OS</tspan>
47 </text>
48 <text xml:space="preserve" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:0.85;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583" x="24.336025" y="189.40337" id="text48200">
49 <tspan sodipodi:role="line" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583" x="24.336025" y="189.67245" id="tspan48196">TARGET</tspan>
50 <tspan sodipodi:role="line" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583" x="24.336025" y="191.47162" id="tspan48198">SOFTWARE</tspan>
51 </text>
52 </g>
53 <text xml:space="preserve" style="font-style:normal;font-variant:normal;font-weight:900;font-stretch:normal;font-size:2.82222px;line-height:1.25;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Heavy';fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" x="95.948242" y="144.60236" id="text51110" inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/pid1/unikernels.png" inkscape:export-xdpi="127.98862" inkscape:export-ydpi="127.98862">
54 <tspan sodipodi:role="line" id="tspan51108" style="font-style:normal;font-variant:normal;font-weight:800;font-stretch:normal;font-size:2.82222px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Ultra-Bold';fill:#000000;stroke-width:0.264583" x="95.948242" y="144.60236">CONTAINERS</tspan>
55 </text>
56 <g id="g51118" transform="translate(66.675002,-101.60001)" inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/pid1/unikernels.png" inkscape:export-xdpi="127.98862" inkscape:export-ydpi="127.98862">
57 <rect style="fill:#f9f9f9;stroke:none;stroke-width:0.429153;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="rect51112" width="50.57568" height="8.4333" x="13.294504" y="213.63496" ry="1.5" />
58 <text xml:space="preserve" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.46944px;line-height:1.25;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583" x="33.144272" y="218.54855" id="text51116">
59 <tspan sodipodi:role="line" id="tspan51114" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.46944px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';fill:#4d4d4d;stroke-width:0.264583" x="33.144272" y="218.54855">HOST OS</tspan>
60 </text>
61 </g>
62 <g id="g51138" transform="translate(66.675002,-102.12917)" inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/pid1/unikernels.png" inkscape:export-xdpi="127.98862" inkscape:export-ydpi="127.98862">
63 <rect style="fill:#f9f9f9;stroke:none;stroke-width:0.499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="rect51120" width="22.000685" height="26.315866" x="13.294504" y="184.14406" ry="1.5" />
64 <text xml:space="preserve" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:0.85;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583" x="24.336025" y="206.33662" id="text51126">
65 <tspan sodipodi:role="line" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583" x="24.336025" y="206.33662" id="tspan51124">CONTAINER</tspan>
66 </text>
67 <text xml:space="preserve" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:0.85;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583" x="24.336025" y="198.19913" id="text51130">
68 <tspan sodipodi:role="line" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583" x="24.336025" y="198.46822" id="tspan51128">PROGRAMS &amp;</tspan>
69 <tspan sodipodi:role="line" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583" x="24.336025" y="200.26738" id="tspan56912">LIBRARIES</tspan>
70 </text>
71 <text xml:space="preserve" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:0.85;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583" x="24.336025" y="189.40337" id="text51136">
72 <tspan sodipodi:role="line" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583" x="24.336025" y="189.67245" id="tspan51132">TARGET</tspan>
73 <tspan sodipodi:role="line" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583" x="24.336025" y="191.47162" id="tspan51134">SOFTWARE</tspan>
74 </text>
75 </g>
76 <g id="g51146" transform="translate(66.675002,-99.483339)" inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/pid1/unikernels.png" inkscape:export-xdpi="127.98862" inkscape:export-ydpi="127.98862">
77 <rect style="fill:#f9f9f9;stroke:none;stroke-width:0.429153;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="rect51140" width="50.57568" height="8.4333" x="13.294504" y="223.15991" ry="1.5" />
78 <text xml:space="preserve" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.46944px;line-height:1.25;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583" x="31.535746" y="228.24654" id="text51144">
79 <tspan sodipodi:role="line" id="tspan51142" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.46944px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';fill:#4d4d4d;stroke-width:0.264583" x="31.535746" y="228.24654">HARDWARE</tspan>
80 </text>
81 </g>
82 <g id="g51166" transform="translate(95.250005,-102.12917)" inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/pid1/unikernels.png" inkscape:export-xdpi="127.98862" inkscape:export-ydpi="127.98862">
83 <rect style="fill:#f9f9f9;stroke:none;stroke-width:0.499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="rect51148" width="22.000685" height="26.315866" x="13.294504" y="184.14406" ry="1.5" />
84 <text xml:space="preserve" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:0.85;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583" x="24.336025" y="206.33662" id="text51154">
85 <tspan sodipodi:role="line" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583" x="24.336025" y="206.33662" id="tspan51152">CONTAINER</tspan>
86 </text>
87 <text xml:space="preserve" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:0.85;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583" x="24.336025" y="198.19913" id="text51158">
88 <tspan sodipodi:role="line" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583" x="24.336025" y="198.46822" id="tspan51156">PROGRAMS &amp;</tspan>
89 <tspan sodipodi:role="line" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583" x="24.336025" y="200.26738" id="tspan64780">LIBRARIES</tspan>
90 </text>
91 <text xml:space="preserve" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:0.85;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583" x="24.336025" y="189.40337" id="text51164">
92 <tspan sodipodi:role="line" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583" x="24.336025" y="189.67245" id="tspan51160">TARGET</tspan>
93 <tspan sodipodi:role="line" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583" x="24.336025" y="191.47162" id="tspan51162">SOFTWARE</tspan>
94 </text>
95 </g>
96 <text xml:space="preserve" style="font-style:normal;font-variant:normal;font-weight:900;font-stretch:normal;font-size:2.82222px;line-height:1.25;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Heavy';fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" x="162.66873" y="144.60236" id="text74212" inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/pid1/unikernels.png" inkscape:export-xdpi="127.98862" inkscape:export-ydpi="127.98862">
97 <tspan sodipodi:role="line" id="tspan74210" style="font-style:normal;font-variant:normal;font-weight:800;font-stretch:normal;font-size:2.82222px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Ultra-Bold';fill:#000000;stroke-width:0.264583" x="162.66873" y="144.60236">UNIKERNELS</tspan>
98 </text>
99 <g id="g74220" transform="translate(132.82087,-101.60001)" inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/pid1/unikernels.png" inkscape:export-xdpi="127.98862" inkscape:export-ydpi="127.98862">
100 <rect style="fill:#f9f9f9;stroke:none;stroke-width:0.429153;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="rect74214" width="50.57568" height="8.4333" x="13.294504" y="213.63496" ry="1.5" />
101 <text xml:space="preserve" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.46944px;line-height:1.25;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583" x="30.66217" y="218.54855" id="text74218">
102 <tspan sodipodi:role="line" id="tspan74216" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.46944px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';fill:#4d4d4d;stroke-width:0.264583" x="30.66217" y="218.54855">HYPERVISOR</tspan>
103 </text>
104 </g>
105 <g id="g74240" transform="translate(132.82087,-102.12917)" inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/pid1/unikernels.png" inkscape:export-xdpi="127.98862" inkscape:export-ydpi="127.98862">
106 <rect style="fill:#f9f9f9;stroke:none;stroke-width:0.377825;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="rect74222" width="22.000685" height="15.026576" x="13.294504" y="195.43335" ry="0.85651237" />
107 <text xml:space="preserve" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:0.85;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583" x="24.336025" y="202.66647" id="text74232">
108 <tspan sodipodi:role="line" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583" x="24.336025" y="202.93556" id="tspan74228">UNIKERNEL &amp;</tspan>
109 <tspan sodipodi:role="line" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583" x="24.336025" y="204.73473" id="tspan74230">APPLICATION</tspan>
110 </text>
111 </g>
112 <g id="g74248" transform="translate(132.82087,-99.483339)" inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/pid1/unikernels.png" inkscape:export-xdpi="127.98862" inkscape:export-ydpi="127.98862">
113 <rect style="fill:#f9f9f9;stroke:none;stroke-width:0.429153;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="rect74242" width="50.57568" height="8.4333" x="13.294504" y="223.15991" ry="1.5" />
114 <text xml:space="preserve" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.46944px;line-height:1.25;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583" x="31.535746" y="228.24654" id="text74246">
115 <tspan sodipodi:role="line" id="tspan74244" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.46944px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';fill:#4d4d4d;stroke-width:0.264583" x="31.535746" y="228.24654">HARDWARE</tspan>
116 </text>
117 </g>
118 <g id="g85408" transform="translate(161.34783,-102.25244)" inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/pid1/unikernels.png" inkscape:export-xdpi="127.98862" inkscape:export-ydpi="127.98862">
119 <rect style="fill:#f9f9f9;stroke:none;stroke-width:0.377825;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="rect85400" width="22.000685" height="15.026576" x="13.294504" y="195.43335" ry="0.85651237" />
120 <text xml:space="preserve" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:0.85;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583" x="24.336025" y="202.66647" id="text85406">
121 <tspan sodipodi:role="line" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583" x="24.336025" y="202.93556" id="tspan85402">UNIKERNEL &amp;</tspan>
122 <tspan sodipodi:role="line" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583" x="24.336025" y="204.73473" id="tspan85404">APPLICATION</tspan>
123 </text>
124 </g>
125 </g>
126 <g id="g48182" transform="translate(0,-102.12917)" inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/pid1/unikernels.png" inkscape:export-xdpi="127.98862" inkscape:export-ydpi="127.98862" />
127 </g>
128</svg>
diff --git a/assets/profile-bind-error/error.jpg b/static/profile-bind-error/error.jpg
index c2e4e8f..c2e4e8f 100644
--- a/assets/profile-bind-error/error.jpg
+++ b/static/profile-bind-error/error.jpg
Binary files differ
diff --git a/assets/python-profiling/kcachegrind.png b/static/python-profiling/kcachegrind.png
index 0dc48ab..0dc48ab 100644
--- a/assets/python-profiling/kcachegrind.png
+++ b/static/python-profiling/kcachegrind.png
Binary files differ
diff --git a/assets/python-profiling/profiling-viewer.png b/static/python-profiling/profiling-viewer.png
index a450513..a450513 100644
--- a/assets/python-profiling/profiling-viewer.png
+++ b/static/python-profiling/profiling-viewer.png
Binary files differ
diff --git a/assets/python-profiling/snakeviz.png b/static/python-profiling/snakeviz.png
index 5bab395..5bab395 100644
--- a/assets/python-profiling/snakeviz.png
+++ b/static/python-profiling/snakeviz.png
Binary files differ
diff --git a/assets/sentiment-analysis/.ipynb_checkpoints/TF Test-checkpoint.ipynb b/static/sentiment-analysis/.ipynb_checkpoints/TF Test-checkpoint.ipynb
index e2a85c4..e2a85c4 100644
--- a/assets/sentiment-analysis/.ipynb_checkpoints/TF Test-checkpoint.ipynb
+++ b/static/sentiment-analysis/.ipynb_checkpoints/TF Test-checkpoint.ipynb
diff --git a/assets/sentiment-analysis/.ipynb_checkpoints/sentiment-analysis-checkpoint.ipynb b/static/sentiment-analysis/.ipynb_checkpoints/sentiment-analysis-checkpoint.ipynb
index 2c0934c..2c0934c 100644
--- a/assets/sentiment-analysis/.ipynb_checkpoints/sentiment-analysis-checkpoint.ipynb
+++ b/static/sentiment-analysis/.ipynb_checkpoints/sentiment-analysis-checkpoint.ipynb
diff --git a/assets/sentiment-analysis/guardian-sa-title-desc-relationship.png b/static/sentiment-analysis/guardian-sa-title-desc-relationship.png
index 7195bbf..7195bbf 100644
--- a/assets/sentiment-analysis/guardian-sa-title-desc-relationship.png
+++ b/static/sentiment-analysis/guardian-sa-title-desc-relationship.png
Binary files differ
diff --git a/assets/sentiment-analysis/sentiment-analysis.ipynb b/static/sentiment-analysis/sentiment-analysis.ipynb
index 2c0934c..2c0934c 100644
--- a/assets/sentiment-analysis/sentiment-analysis.ipynb
+++ b/static/sentiment-analysis/sentiment-analysis.ipynb
diff --git a/assets/simple-pubsub-server/caniuse.png b/static/simple-pubsub-server/caniuse.png
index 90f7883..90f7883 100644
--- a/assets/simple-pubsub-server/caniuse.png
+++ b/static/simple-pubsub-server/caniuse.png
Binary files differ
diff --git a/assets/simple-pubsub-server/chrome-debugging.png b/static/simple-pubsub-server/chrome-debugging.png
index 1bdc448..1bdc448 100644
--- a/assets/simple-pubsub-server/chrome-debugging.png
+++ b/static/simple-pubsub-server/chrome-debugging.png
Binary files differ
diff --git a/assets/simple-pubsub-server/clients.mp4 b/static/simple-pubsub-server/clients.mp4
index 62a3bcf..62a3bcf 100644
--- a/assets/simple-pubsub-server/clients.mp4
+++ b/static/simple-pubsub-server/clients.mp4
Binary files differ
diff --git a/assets/simple-pubsub-server/pubsub-overview.png b/static/simple-pubsub-server/pubsub-overview.png
index 0279ec3..0279ec3 100644
--- a/assets/simple-pubsub-server/pubsub-overview.png
+++ b/static/simple-pubsub-server/pubsub-overview.png
Binary files differ
diff --git a/assets/simple-pubsub-server/sse-pubsub-server.zip b/static/simple-pubsub-server/sse-pubsub-server.zip
index 898b290..898b290 100644
--- a/assets/simple-pubsub-server/sse-pubsub-server.zip
+++ b/static/simple-pubsub-server/sse-pubsub-server.zip
Binary files differ
diff --git a/assets/wap/emulator.mp4 b/static/wap/emulator.mp4
index e4f59aa..e4f59aa 100644
--- a/assets/wap/emulator.mp4
+++ b/static/wap/emulator.mp4
Binary files differ
diff --git a/assets/wap/phones.gif b/static/wap/phones.gif
index 15f99e2..15f99e2 100644
--- a/assets/wap/phones.gif
+++ b/static/wap/phones.gif
Binary files differ
diff --git a/assets/world-clock/enclosure.stl b/static/world-clock/enclosure.stl
index 99f3d1a..99f3d1a 100644
--- a/assets/world-clock/enclosure.stl
+++ b/static/world-clock/enclosure.stl
Binary files differ
diff --git a/assets/world-clock/hardware.jpg b/static/world-clock/hardware.jpg
index 315a04d..315a04d 100644
--- a/assets/world-clock/hardware.jpg
+++ b/static/world-clock/hardware.jpg
Binary files differ
diff --git a/assets/world-clock/world-clock.jpg b/static/world-clock/world-clock.jpg
index afdb6e2..afdb6e2 100644
--- a/assets/world-clock/world-clock.jpg
+++ b/static/world-clock/world-clock.jpg
Binary files differ
diff --git a/assets/yapyap/hello.png b/static/yapyap/hello.png
index d141cd3..d141cd3 100644
--- a/assets/yapyap/hello.png
+++ b/static/yapyap/hello.png
Binary files differ
diff --git a/assets/yapyap/pid1.jpg b/static/yapyap/pid1.jpg
index 99bc1d8..99bc1d8 100644
--- a/assets/yapyap/pid1.jpg
+++ b/static/yapyap/pid1.jpg
Binary files differ
diff --git a/template/_footer.html b/template/_footer.html
deleted file mode 100755
index 605c0a9..0000000
--- a/template/_footer.html
+++ /dev/null
@@ -1,7 +0,0 @@
1<div class="footer">
2 <footer class="wrapper">
3 This website does not track you.
4 Content is made available under the <a href="https://creativecommons.org/licenses/by/4.0/" target="_blank" rel="noreferrer">CC BY 4.0 license</a> unless specified otherwise.
5 Blog feed available as <a href="/feed.rss" target="_blank">RSS</a> or <a href="/feed.json" target="_blank">JSON</a> feeds.
6 </footer>
7</div>
diff --git a/template/_includes.html b/template/_includes.html
deleted file mode 100755
index 5151355..0000000
--- a/template/_includes.html
+++ /dev/null
@@ -1,7 +0,0 @@
1<!-- user code -->
2
3<script src="/script.js?v=2022-08-14-02" async></script>
4
5<!-- Fathom - beautiful, simple website analytics -->
6<script src="https://cdn.usefathom.com/script.js" data-site="XHQARKXP" defer></script>
7<!-- / Fathom --> \ No newline at end of file
diff --git a/template/_meta.html b/template/_meta.html
deleted file mode 100755
index ff0dc0f..0000000
--- a/template/_meta.html
+++ /dev/null
@@ -1,16 +0,0 @@
1<meta charset="utf-8">
2<meta name="theme-color" content="#ffffff">
3<meta name="viewport" content="width=device-width, initial-scale=1.0">
4<meta http-equiv="X-UA-Compatible" content="ie=edge">
5
6<meta name="theme-color" content="#ffffff">
7
8<link rel="stylesheet" href="/style.css?v=2022-07-05-01">
9
10<link rel="alternate" type="application/rss+xml" href="/feed.rss">
11<link rel="alternate" type="application/feed+json" href="/feed.json">
12<link rel="alternate" type="application/rss+xml" href="/yapyap.xml" title="YapYap">
13
14<link
15 href="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL69vf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv76+/8LBwQkAAAAAAAAAAAAAAAC+vb3/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL+9vf/Bv78JAAAAAAAAAAAAAAAAu7q6/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7ubr/vr29CAAAAAAAAAAAy8nJAZ6foP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnqGj/6GipAoAAAAAHLjU/xcXHf/BwsL/I8XY/yPK3v8XGiD/IbjL/yPF2f8XGiD/Fxkf/yLF2f8gnK3/Fxog/62ztv8fwNf/FRcd/x271v8mz93/GRsi/xkXHf8p097/GiIp/xobIv8p0t3/KdPe/xocIv8fYmr/KNPe/xoZH/8aHCL/J87c/xy81/8VFxz/IsPZ/8zS0/8XGiD/Ir/R/yPH2/8XGiD/Fxkf/yPH2/8dd4T/GBog/yPJ3f8jyNr/uru9/xcUGv8cudb/EhITDKi5vRKlvMP/RUpOERwcHRAdOj4QHTk8EBwdHRAdNTgQHTo/EBwcHRAcHB0QSGduEKW4vf+koqQfHzg+EBqz0ewSFRv7EyMr/xq51vsTERb7ExUb+xq41fsau9j7ExUb+xiPp/sZudb7ExUb+xMVG/sZuNX/GKvI/BIUGfMdvdn/IrfL/xcaIP8n1eb/J9Dh/xkcIf8ZGR7/J8/f/xxCSv8ZGyH/J9Dg/ybQ4P8ZHCL/FSQs/yPK3/8UExj/GE1b/ybS5P8ZGB7/Ghwj/ynW5P8p2Ob/Ghwi/yWrtv8p1eH/Ghwi/xocIv8p1uT/J8XT/xkcIv8m1un/Hb7d/xUYH/8hzOr/HtHu/xcaIf8XGB//I8vi/xgxOv8XGSD/I8rg/yPK4P8XGiD/GUFL/yPP6f8SERj/Fhkh/x3A4f8AAAAAJ2f9/ydr//8mZPH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlYu38J2v//ydo/f8AAAAAAAAAAAd8/fkFqf//Iob8sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMY39awWr//8FfP3/AAAAAAAAAAAFm/7/SfD//wR+/f8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOB/f9B7v//BaX+/wAAAAAAAAAAQ878SAyZ/v9n1v4KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADu9v8DDJb+/z3N/XgAAAAA3/sAAN/7AADf+wAA3/sAAAAAAAAAAAAAAAAAAN/7AAAAAAAAAAAAAAAAAAAAAAAAj/EAAI/5AACP8QAA3/sAAA=="
16 rel="icon" type="image/x-icon" /> \ No newline at end of file
diff --git a/template/_navigation.html b/template/_navigation.html
deleted file mode 100755
index 8fef331..0000000
--- a/template/_navigation.html
+++ /dev/null
@@ -1,18 +0,0 @@
1<div class="navigation">
2 <header class="wrapper">
3 <h3 class="home">
4 <a href="/" itemprop="url">Mitja Felicijan</a>
5 </h3>
6
7 <nav itemscope itemtype="http://schema.org/SiteNavigationElement" class="main-navigation">
8 <meta itemprop="name" content="Main Menu">
9
10 <a href="https://git.mitjafelicijan.com" target="_blank" rel="noopener nofollow" itemprop="url">Git</a>
11 <a href="https://files.mitjafelicijan.com" target="_blank" rel="noopener nofollow" itemprop="url">Files</a>
12 <a href="/curriculum-vitae.html">CV</a>
13 <a href="/books.html">Books</a>
14
15 <a href="/feed.rss" itemprop="url">RSS</a>
16 </nav>
17 </header>
18</div> \ No newline at end of file
diff --git a/template/favicon.ico b/template/favicon.ico
deleted file mode 100644
index d6be6ec..0000000
--- a/template/favicon.ico
+++ /dev/null
Binary files differ
diff --git a/template/index.html b/template/index.html
deleted file mode 100755
index 9196940..0000000
--- a/template/index.html
+++ /dev/null
@@ -1,62 +0,0 @@
1<!doctype html>
2<html lang="en">
3
4<head>
5 {{template "_meta.html"}}
6
7 <title>{{.Title}}</title>
8 <meta name="description" content="{{.Description}}">
9 <meta property="og:title" content="{{.Title}}">
10 <meta property="og:description" content="{{.Description}}">
11</head>
12
13<body>
14
15 {{template "_navigation.html"}}
16
17 <main class="wrapper">
18 <h2>Blog posts</h2>
19 <nav itemscope itemtype="https://schema.org/SiteNavigationElement">
20 <meta itemprop="name" content="Article list">
21
22 <ul class="post-list">
23 {{range $index, $post := .Posts}}
24 {{if $post.Listing}}
25 <li>
26 <time>{{.CreatedFormatted}}</time>
27
28 <a href="/{{$post.Slug}}" title="{{$post.Title}}" itemprop="url">
29 <h2>{{$post.Title}}</h2>
30 </a>
31 </li>
32 {{end}}
33 {{end}}
34 </ul>
35 </nav>
36
37 <hr class="top-margin">
38
39 <section class="project-list">
40 <h4>Side projects I work/worked on</h4>
41 <ul>
42 <li><a href="https://git.mitjafelicijan.com/journalctl-proxy.git/" target="_blank" rel="noopener nofollow">journalctl-proxy - Exposes your systemd logs to web via web interface</a></li>
43 <li><a href="https://git.mitjafelicijan.com/redis-marshal.git/" target="_blank" rel="noopener nofollow">redis-marshal - Lightweight Redis data exploration tool</a></li>
44 <li><a href="https://git.mitjafelicijan.com/dna-encoding.git/" target="_blank" rel="noopener nofollow">dna-encoding - Tools for encoding files to DNA sequence</a></li>
45 <li><a href="https://git.mitjafelicijan.com/vertex.git/" target="_blank" rel="noopener nofollow">vertex - Create mock API's and add basic logic to simplify prototyping</a></li>
46 <li><a href="https://git.mitjafelicijan.com/scarecrow.git/" target="_blank" rel="noopener nofollow">scarecrow - Minimal configuration reverse proxy</a></li>
47 </ul>
48 </section>
49
50 <hr class="top-margin">
51
52 {{template "openring-build.html"}}
53
54 </main>
55
56 {{template "_footer.html"}}
57
58 {{template "_includes.html"}}
59
60</body>
61
62</html> \ No newline at end of file
diff --git a/template/openring.tmpl b/template/openring.tmpl
deleted file mode 100644
index 43ad6a2..0000000
--- a/template/openring.tmpl
+++ /dev/null
@@ -1,34 +0,0 @@
1<section class="webring top-margin">
2 <h4>Articles from blogs I follow around the net</h3>
3 <section>
4 {{range .Articles}}
5 <article>
6 <a href="{{.Link}}" target="_blank" rel="noopener">{{.Title}}</a>
7 <p class="summary">{{.Summary}}</p>
8 <small>
9 via <a href="{{.SourceLink}}">{{.SourceTitle}}</a>
10 </small>
11 <small>{{.Date | datef "January 2, 2006"}}</small>
12 </article>
13 {{end}}
14 </section>
15 <p class="attribution">
16 Generated by
17 <a href="https://git.sr.ht/~sircmpwn/openring">openring</a>
18 </p>
19</section>
20
21<style>
22 .webring article {
23 margin-block-end: 30px;
24 }
25 .webring article:last-child {
26 margin-block-end: 10px;
27 }
28 .webring article .summary {
29 margin: 0;
30 }
31 .webring .attribution {
32 font-size: small;
33 }
34</style>
diff --git a/template/post.html b/template/post.html
deleted file mode 100755
index 3ce5ff0..0000000
--- a/template/post.html
+++ /dev/null
@@ -1,76 +0,0 @@
1<!doctype html>
2<html lang="en">
3
4<head>
5 {{template "_meta.html"}}
6
7 <title>{{.Title}}</title>
8 <meta name="description" content="{{.Description}}">
9 <meta property="og:title" content="{{.Title}}">
10 <meta property="og:description" content="{{.Description}}">
11</head>
12
13<body>
14
15 {{template "_navigation.html"}}
16
17 <main class="wrapper">
18 <article itemtype="http://schema.org/Article">
19 <header>
20 <h1 itemtype="headline">{{.Title}}</h1>
21 {{if .Listing}}
22 <time>Published on {{.CreatedFormatted}}</time>
23 {{end}}
24 </header>
25 <div>
26 {{.Content}}
27 </div>
28 </article>
29
30 {{if .Listing}}
31
32 <hr class="top-margin">
33
34 <p class="top-margin">
35 <strong>Comment, contact:</strong> The easiest way to contact me is by writing me a message on <a href="https://t.me/mitjafelicijan" target="_blank">Telegram (https://t.me/mitjafelicijan)</a>.
36 </p>
37
38 <p>You can also just write me an email at <a href="mailto:m@mitjafelicijan.com">m@mitjafelicijan.com</a>.</p>
39
40 <hr class="top-margin">
41
42 {{if .Posts}}
43 <nav class="top-margin">
44 <h4>Read more from this site</h4>
45 {{range $index, $post := .Posts}}
46 {{if .Listing}}
47 {{if (lt $index 5)}}
48 <p>
49 <time>{{$post.CreatedFormatted}}</time><br>
50 <a href="/{{$post.Slug}}" title="{{$post.Title}}" itemprop="url">
51 {{$post.Title}}
52 </a>
53 </p>
54 {{end}}
55 {{end}}
56 {{end}}
57 </nav>
58 {{end}}
59
60 <hr class="top-margin">
61
62 {{template "openring-build.html"}}
63
64 {{end}}
65
66 </main>
67
68 {{template "_footer.html"}}
69
70 {{template "_includes.html"}}
71
72 {{template "_libraries.html"}}
73
74</body>
75
76</html> \ No newline at end of file
diff --git a/template/robots.txt b/template/robots.txt
deleted file mode 100644
index c2a49f4..0000000
--- a/template/robots.txt
+++ /dev/null
@@ -1,2 +0,0 @@
1User-agent: *
2Allow: /
diff --git a/template/script.js b/template/script.js
deleted file mode 100755
index c03883f..0000000
--- a/template/script.js
+++ /dev/null
@@ -1,11 +0,0 @@
1window.addEventListener('load', async () => {
2
3 // flip CV image on mouse over
4 const cvImage = document.querySelector('.cv-picture img');
5 if (cvImage) {
6 setInterval(() => {
7 cvImage.style.transform = cvImage.style.transform === 'scaleX(1)' ? 'scaleX(-1)' : 'scaleX(1)';
8 }, 1000);
9 }
10
11});
diff --git a/template/style.css b/template/style.css
deleted file mode 100755
index 20ed862..0000000
--- a/template/style.css
+++ /dev/null
@@ -1,436 +0,0 @@
1/*@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@300;400;500;600;700&display=swap');*/
2
3:root {
4 --base-document-width: 640px;
5 --base-font-size: 16px;
6 --base-line-heigh: 1.6em;
7 --base-color: #111111;
8
9 --link-color: #111111;
10 --link-color-hover: #111111;
11
12 --label-color: #222222;
13
14 --border-color: #eeeeee;
15
16 --badge-background-color: #eeeeee;
17 --badge-label-color: #111111;
18
19 --code-font-size: 13px;
20
21 --comment-form-font: 16px 'Times New Roman', Times, serif;
22}
23
24* {
25 box-sizing: border-box;
26}
27
28body {
29 background: white;
30 /*font-family: 'Times New Roman', Times, serif;*/
31 /*font-family: 'IBM Plex Sans', sans-serif;*/
32 font-family: "SF Pro Text", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif;
33 color: var(--base-color);
34 font-size: var(--base-font-size);
35 line-height: var(--base-line-heigh);
36 padding: 0;
37 margin: 0;
38 padding-bottom: 100px;
39}
40
41hr {
42 border: 0;
43 border-top: 5px solid #f7f7f7;
44}
45
46
47::selection {
48 background: rgb(255, 241, 177);
49 color: #000;
50}
51
52::-moz-selection {
53 background: rgb(255, 241, 177);
54 color: #000;
55}
56
57.cursor {
58 cursor: pointer;
59}
60
61/* width of the page */
62
63.wrapper {
64 max-width: var(--base-document-width);
65 margin: 0 auto;
66}
67
68/* links */
69
70a {
71 color: black;
72}
73
74a:hover {
75 background: rgb(255, 241, 177);
76}
77
78
79/* headings */
80
81h1 {
82 font-size: 220%;
83 line-height: 1.2em;
84}
85
86h2 {
87 font-size: 180%;
88 line-height: 1.2em;
89}
90
91h3 {
92 font-size: 160%;
93 line-height: 1.2em;
94}
95
96h4 {
97 font-size: 140%;
98 line-height: 1.2em;
99}
100
101h5 {
102 font-size: 120%;
103 line-height: 1.2em;
104}
105
106h6 {
107 font-size: 100%;
108 line-height: 1.2em;
109}
110
111h1[itemtype="headline"] {
112 padding-bottom: 0;
113 margin-bottom: 20px;
114 font-size: 230%;
115 line-height: 1.2em;
116 font-weight: 800;
117}
118
119/* tables */
120
121table {
122 width: 100%;
123}
124
125table,
126th,
127td {
128 border: 1px solid black;
129 text-align: left;
130}
131
132th,
133td {
134 padding: 5px 10px;
135}
136
137
138/* quotes */
139
140blockquote {
141 position: relative;
142 margin-block-start: 30px;
143 margin-block-end: 30px;
144 margin-right: 0;
145}
146
147blockquote:before {
148 content: ' ';
149 background-image: url('/assets/general/alert-light.svg');
150 background-size: 30px 30px;
151 height: 30px;
152 width: 30px;
153 position: absolute;
154 left: -40px;
155 top: 6px;
156}
157
158blockquote p {
159 padding-left: 10px;
160}
161
162
163/* header navigation */
164
165.navigation {
166 margin-block-start: 10px;
167 margin-block-end: 30px;
168}
169
170.navigation header {
171 display: flex;
172 align-items: center;
173}
174
175.navigation header a {
176 text-decoration: none;
177}
178
179.navigation header a:hover {
180 text-decoration: underline;
181}
182
183.navigation header .home {
184 font-size: 130%;
185 font-weight: 700;
186}
187
188.navigation header .home a {
189 color: var(--base-color);
190}
191
192.navigation header .home a:hover {
193 text-decoration: none;
194}
195
196.navigation header nav {
197 flex-grow: 1;
198 text-align: right;
199}
200
201.navigation header nav a {
202 padding: 0 10px;
203 font-size: 100%;
204 font-weight: 500;
205}
206
207/* index post list */
208
209.post-list {
210 list-style-type: none;
211 padding: 0;
212 margin: 0;
213}
214
215.post-list li {
216 margin: 0 0 15px 0;
217}
218
219.post-list li time {
220 display: block;
221 font-size: 80%;
222 font-weight: 500;
223 line-height: 1.2em;
224 color: #a7a7a7;
225}
226
227.post-list li a {
228 display: inline-block;
229 text-decoration: none;
230}
231
232.post-list li a:hover {}
233
234.post-list li a h2 {
235 font-weight: 400;
236 font-size: 100%;
237 margin: 0;
238}
239
240
241/* project list */
242
243.project-list {
244 margin-top: 60px;
245}
246
247.project-list a {}
248
249.project-list li {
250 list-style-type: disclosure-closed;
251 padding-left: 10px;
252}
253
254
255/* webring */
256
257.webring a {
258 font-weight: 500;
259}
260
261
262/* tag badges */
263
264.tags {
265 margin-top: 5px;
266}
267
268.tags a {
269 font-size: 80%;
270 padding: 2px 10px;
271 border-radius: 20px;
272
273 background: var(--badge-background-color);
274 color: var(--badge-label-color) !important;
275}
276
277.tags a:hover {
278 filter: brightness(90%);
279}
280
281
282/* helpers */
283
284.top-margin {
285 margin-top: 60px;
286}
287
288.top-margin-huge {
289 margin-top: 100px;
290}
291
292code {
293 font-family: monospace;
294 background: rgb(255, 241, 177);
295 border-radius: 5px;
296 padding: 2px 8px;
297 font-size: var(--code-font-size);
298 font-weight: 500;
299}
300
301pre>code {
302 background: unset;
303 padding: unset;
304
305 padding: 15px 20px !important;
306 border-radius: 5px !important;
307 font-weight: 400;
308}
309
310pre {
311 font-size: var(--code-font-size);
312 line-height: 1.5em;
313
314 margin-block-start: 40px;
315 margin-block-end: 40px;
316}
317
318img,
319video {
320 max-width: 100%;
321 margin: 30px auto;
322 display: block;
323 border-radius: 5px;
324}
325
326video {
327 background: var(--badge-background-color);
328}
329
330time {
331 color: var(--label-color);
332 font-size: 90%;
333}
334
335/* article */
336
337article a {
338 overflow-wrap: break-word;
339 word-wrap: break-word;
340 -webkit-hyphens: auto;
341 -ms-hyphens: auto;
342 -moz-hyphens: auto;
343 hyphens: auto;
344}
345
346article img {
347 max-width: 120%;
348 width: 120%;
349 position: relative;
350 left: -10%;
351 margin: 40px auto;
352 /* border: 1px solid #eee; */
353}
354
355article strong {
356 font-weight: 600;
357}
358
359article ol {
360 padding-inline-start: 30px;
361}
362
363article .katex-display {
364 margin: 3em 0 !important;
365}
366
367/* audio */
368
369audio {
370 width: 100%;
371 outline: none;
372}
373
374
375/* footer */
376
377.footer {
378 margin-top: 70px;
379 padding-top: 20px;
380 padding-bottom: 50px;
381 font-size: 90%;
382 color: #888;
383}
384
385.footer a {
386 color: #666;
387}
388
389/* responsive */
390
391@media only screen and (max-width: 960px) {
392 main {
393 padding: 0 20px;
394 }
395
396 footer {
397 padding: 0 20px;
398 }
399
400 h1[itemtype="headline"] {
401 font-size: 220%;
402 }
403
404 .navigation header {
405 padding: 0 20px;
406 }
407
408 article img {
409 max-width: 100%;
410 position: initial;
411 margin: 20px auto;
412 }
413}
414
415@media only screen and (max-width: 600px) {
416 .navigation header {
417 display: block;
418 }
419
420 .navigation header h3 {
421 text-align: center;
422 margin-bottom: 10px;
423 }
424
425 .navigation header nav {
426 text-align: center;
427 }
428
429 .post-list li a h2 {
430 font-weight: 500;
431 }
432
433 .search-trigger {
434 display: none;
435 }
436} \ No newline at end of file
diff --git a/template/tag.html b/template/tag.html
deleted file mode 100755
index 42e42ea..0000000
--- a/template/tag.html
+++ /dev/null
@@ -1,61 +0,0 @@
1<!doctype html>
2<html lang="en">
3
4 <head>
5 {{template "_meta.html"}}
6
7 <title>{{.Title}}</title>
8 <meta name="description" content="{{.Description}}">
9 </head>
10
11 <body>
12
13 {{template "_navigation.html"}}
14
15 <main class="wrapper">
16 <h2>Posts for `{{.Tag}}`</h2>
17 <nav itemscope itemtype="https://schema.org/SiteNavigationElement">
18 <meta itemprop="name" content="Article list">
19
20 <ul class="post-list">
21 {{range $index, $post := .Posts}}
22 <li>
23 <time>{{.CreatedFormatted}}</time>
24
25 <a href="/{{$post.Slug}}" title="{{$post.Title}}" itemprop="url">
26 <h2>{{$post.Title}}</h2>
27 </a>
28
29 <!-- lists all tags available in this posts -->
30 {{if $post.Tags}}
31 <nav class="tags">
32 {{range $post.Tags}}
33 <a href="/tags/{{.}}.html" rel="tag">{{.}}</a>
34 {{end}}
35 </nav>
36 {{end}}
37
38 </li>
39 {{end}}
40 </ul>
41 </nav>
42
43 <!-- lists all tags available in all posts -->
44 {{if .Tags}}
45 <nav class="tags top-margin">
46 <strong>All tags on site:</strong>
47 {{range .Tags}}
48 <a href="/tags/{{.}}.html" rel="tag">{{.}}</a>
49 {{end}}
50 </nav>
51 {{end}}
52
53 </main>
54
55 {{template "_footer.html"}}
56
57 {{template "_includes.html"}}
58
59 </body>
60
61</html>
diff --git a/themes/.gitkeep b/themes/.gitkeep
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/themes/.gitkeep
diff --git a/themes/simple/LICENSE b/themes/simple/LICENSE
new file mode 100644
index 0000000..147d594
--- /dev/null
+++ b/themes/simple/LICENSE
@@ -0,0 +1,20 @@
1The MIT License (MIT)
2
3Copyright (c) 2022 YOUR_NAME_HERE
4
5Permission is hereby granted, free of charge, to any person obtaining a copy of
6this software and associated documentation files (the "Software"), to deal in
7the Software without restriction, including without limitation the rights to
8use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9the Software, and to permit persons to whom the Software is furnished to do so,
10subject to the following conditions:
11
12The above copyright notice and this permission notice shall be included in all
13copies or substantial portions of the Software.
14
15THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/themes/simple/archetypes/default.md b/themes/simple/archetypes/default.md
new file mode 100644
index 0000000..ac36e06
--- /dev/null
+++ b/themes/simple/archetypes/default.md
@@ -0,0 +1,2 @@
1+++
2+++
diff --git a/themes/simple/layouts/404.html b/themes/simple/layouts/404.html
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/themes/simple/layouts/404.html
diff --git a/themes/simple/layouts/_default/baseof.html b/themes/simple/layouts/_default/baseof.html
new file mode 100644
index 0000000..5f8e2ec
--- /dev/null
+++ b/themes/simple/layouts/_default/baseof.html
@@ -0,0 +1,11 @@
1<!DOCTYPE html>
2<html>
3 {{- partial "head.html" . -}}
4 <body>
5 {{- partial "header.html" . -}}
6 <div id="content">
7 {{- block "main" . }}{{- end }}
8 </div>
9 {{- partial "footer.html" . -}}
10 </body>
11</html>
diff --git a/themes/simple/layouts/_default/list.html b/themes/simple/layouts/_default/list.html
new file mode 100644
index 0000000..e194063
--- /dev/null
+++ b/themes/simple/layouts/_default/list.html
@@ -0,0 +1,32 @@
1{{ define "main" }}
2<main aria-role="main" class="container-blog">
3
4 <h1 class="text-2xl font-bold mb-6">Blog posts</h1>
5
6 <!-- List of all blog posts -->
7 <nav itemscope itemtype="https://schema.org/SiteNavigationElement" class="mb-12">
8 <meta itemprop="name" content="Article list">
9 <ul>
10 {{ range (where .Site.RegularPages "Section" "posts") }}
11 <li class="mb-5">
12 <time class="block text-gray-400 font-medium text-xs">{{ .Date.Format "Monday Jan 2, 2006" }}</time>
13 <a href="{{.Permalink}}" itemprop="url" class="hover:bg-yellow-200">{{.Title}}</a>
14 </li>
15 {{end}}
16 </ul>
17 </nav>
18
19 <!-- Projects I work on -->
20 <section class="mb-12">
21 <h4 class="text-2xl font-bold mb-6">Side projects I work/worked on</h4>
22 <ul class="list-disc ml-6">
23 <li><a href="https://git.mitjafelicijan.com/journalctl-proxy.git/" target="_blank" rel="noopener nofollow" class="underline hover:bg-yellow-200">journalctl-proxy - Exposes your systemd logs to web via web interface</a></li>
24 <li><a href="https://git.mitjafelicijan.com/redis-marshal.git/" target="_blank" rel="noopener nofollow" class="underline hover:bg-yellow-200">redis-marshal - Lightweight Redis data exploration tool</a></li>
25 <li><a href="https://git.mitjafelicijan.com/dna-encoding.git/" target="_blank" rel="noopener nofollow" class="underline hover:bg-yellow-200">dna-encoding - Tools for encoding files to DNA sequence</a></li>
26 <li><a href="https://git.mitjafelicijan.com/vertex.git/" target="_blank" rel="noopener nofollow" class="underline hover:bg-yellow-200">vertex - Create mock API's and add basic logic to simplify prototyping</a></li>
27 <li><a href="https://git.mitjafelicijan.com/scarecrow.git/" target="_blank" rel="noopener nofollow" class="underline hover:bg-yellow-200">scarecrow - Minimal configuration reverse proxy</a></li>
28 </ul>
29 </section>
30
31</main>
32{{ end }}
diff --git a/themes/simple/layouts/_default/rss.xml b/themes/simple/layouts/_default/rss.xml
new file mode 100644
index 0000000..38c8755
--- /dev/null
+++ b/themes/simple/layouts/_default/rss.xml
@@ -0,0 +1,27 @@
1<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom">
2
3 <channel>
4
5 <title>{{ .Site.Author.name }}</title>
6 <link>{{ .Permalink }}</link>
7 <description>{{ .Site.Params.description }}</description>
8 <language>en-us</language>
9
10 {{ range (where .Site.RegularPages "Section" "posts") }}
11 <item>
12 <title>{{ .Title }}</title>
13 <link>{{ .Permalink }}</link>
14 <pubDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</pubDate>
15 {{ with .Site.Author.email }}<author>{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}</author>{{end}}
16 <guid>{{ .Permalink }}</guid>
17
18 <description>{{ "<![CDATA[" | safeHTML }} {{ .Summary }}]]></description>
19 <content:encoded>{{ "<![CDATA[" | safeHTML }} {{ .Content }}]]></content:encoded>
20
21 </item>
22 {{end}}
23
24 </channel>
25
26
27</rss>
diff --git a/themes/simple/layouts/_default/single.html b/themes/simple/layouts/_default/single.html
new file mode 100644
index 0000000..7142f1b
--- /dev/null
+++ b/themes/simple/layouts/_default/single.html
@@ -0,0 +1,46 @@
1{{ define "main" }}
2<main aria-role="main" class="container-blog">
3
4 <!-- Single article -->
5 <article itemtype="http://schema.org/Article" class="mb-12">
6 <header>
7 <h1 itemtype="headline" class="text-4xl font-extrabold mb-6">{{.Title}}</h1>
8 <time class="text-gray-400 font-medium text-sm">Published on {{ .Date.Format "Monday Jan 2, 2006" }}</time>
9 </header>
10
11 <div class="leading-relaxed">
12 {{.Content}}
13 </div>
14 </article>
15
16 <hr class="border-2 border-gray-100 mb-10">
17
18 <!-- Comment, contact -->
19 <section class="mb-10">
20 <p class="mb-4">
21 <strong>Comment, contact:</strong> The easiest way to contact me is by writing me a message on <a href="https://t.me/mitjafelicijan" target="_blank">Telegram (https://t.me/mitjafelicijan)</a>.
22 </p>
23 <p>You can also just write me an email at <a href="mailto:m@mitjafelicijan.com">m@mitjafelicijan.com</a>.</p>
24 </section>
25
26 <hr class="border-2 border-gray-100 mb-10">
27
28 <!-- Read more -->
29 <section>
30 <h1 class="text-2xl font-bold mb-6">Read more from this site</h1>
31 <nav itemscope itemtype="https://schema.org/SiteNavigationElement" class="mb-12">
32 <meta itemprop="name" content="Article list">
33 <ul>
34 {{ $randomPosts := shuffle (where .Site.RegularPages "Type" "posts") | first 5 }}
35 {{ range $randomPosts }}
36 <li class="mb-3">
37 <time class="block text-gray-500 text-sm">{{ .Date.Format "Mon Jan 2, 2006" }}</time>
38 <a href="{{.Permalink}}" itemprop="url" class="hover:bg-yellow-200">{{.Title}}</a>
39 </li>
40 {{end}}
41 </ul>
42 </nav>
43 </section>
44
45</main>
46{{ end }}
diff --git a/template/_libraries.html b/themes/simple/layouts/partials/footer.html
index 1a7b911..6e7ec9c 100644
--- a/template/_libraries.html
+++ b/themes/simple/layouts/partials/footer.html
@@ -1,11 +1,14 @@
1<!-- katex math library --> 1<footer class="container-blog text-gray-400 text-sm mb-12">
2 This website does not track you.
3 Content is made available under the <a href="https://creativecommons.org/licenses/by/4.0/" target="_blank" rel="noreferrer" class="underline hover:text-gray-800">CC BY 4.0 license</a> unless specified otherwise.
4 Blog feed is available as <a href="/index.xml" target="_blank" class="underline hover:text-gray-800">RSS</a> feed.
5</footer>
2 6
7<!-- katex math library -->
3<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.13.13/dist/katex.min.css" integrity="sha384-RZU/ijkSsFbcmivfdRBQDtwuwVqK7GMOw6IMvKyeWL2K5UAlyp6WonmB8m7Jd0Hn" crossorigin="anonymous"> 8<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.13.13/dist/katex.min.css" integrity="sha384-RZU/ijkSsFbcmivfdRBQDtwuwVqK7GMOw6IMvKyeWL2K5UAlyp6WonmB8m7Jd0Hn" crossorigin="anonymous">
4<script defer src="https://cdn.jsdelivr.net/npm/katex@0.13.13/dist/katex.min.js" integrity="sha384-pK1WpvzWVBQiP0/GjnvRxV4mOb0oxFuyRxJlk6vVw146n3egcN5C925NCP7a7BY8" crossorigin="anonymous"></script> 9<script defer src="https://cdn.jsdelivr.net/npm/katex@0.13.13/dist/katex.min.js" integrity="sha384-pK1WpvzWVBQiP0/GjnvRxV4mOb0oxFuyRxJlk6vVw146n3egcN5C925NCP7a7BY8" crossorigin="anonymous"></script>
5<script defer src="https://cdn.jsdelivr.net/npm/katex@0.13.13/dist/contrib/auto-render.min.js" integrity="sha384-vZTG03m+2yp6N6BNi5iM4rW4oIwk5DfcNdFfxkk9ZWpDriOkXX8voJBFrAO7MpVl" crossorigin="anonymous" onload="renderMathInElement(document.body);"></script> 10<script defer src="https://cdn.jsdelivr.net/npm/katex@0.13.13/dist/contrib/auto-render.min.js" integrity="sha384-vZTG03m+2yp6N6BNi5iM4rW4oIwk5DfcNdFfxkk9ZWpDriOkXX8voJBFrAO7MpVl" crossorigin="anonymous" onload="renderMathInElement(document.body);"></script>
6 11
7<!-- code highlighting -->
8 12
9<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/styles/github.min.css"> 13<!-- Fathom - beautiful, simple website analytics -->
10<script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/highlight.min.js"></script> 14<script src="https://cdn.usefathom.com/script.js" data-site="XHQARKXP" defer></script>
11<script>hljs.initHighlightingOnLoad();</script>
diff --git a/themes/simple/layouts/partials/head.html b/themes/simple/layouts/partials/head.html
new file mode 100644
index 0000000..716b1f0
--- /dev/null
+++ b/themes/simple/layouts/partials/head.html
@@ -0,0 +1,175 @@
1<meta charset="UTF-8">
2<meta name="theme-color" content="#ffffff">
3<meta name="viewport" content="width=device-width, initial-scale=1.0">
4
5<script src="https://cdn.tailwindcss.com"></script>
6
7<link rel="alternate" type="application/rss+xml" href="/index.xml">
8
9<link
10 href="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL69vf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv76+/8LBwQkAAAAAAAAAAAAAAAC+vb3/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL+9vf/Bv78JAAAAAAAAAAAAAAAAu7q6/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7ubr/vr29CAAAAAAAAAAAy8nJAZ6foP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnqGj/6GipAoAAAAAHLjU/xcXHf/BwsL/I8XY/yPK3v8XGiD/IbjL/yPF2f8XGiD/Fxkf/yLF2f8gnK3/Fxog/62ztv8fwNf/FRcd/x271v8mz93/GRsi/xkXHf8p097/GiIp/xobIv8p0t3/KdPe/xocIv8fYmr/KNPe/xoZH/8aHCL/J87c/xy81/8VFxz/IsPZ/8zS0/8XGiD/Ir/R/yPH2/8XGiD/Fxkf/yPH2/8dd4T/GBog/yPJ3f8jyNr/uru9/xcUGv8cudb/EhITDKi5vRKlvMP/RUpOERwcHRAdOj4QHTk8EBwdHRAdNTgQHTo/EBwcHRAcHB0QSGduEKW4vf+koqQfHzg+EBqz0ewSFRv7EyMr/xq51vsTERb7ExUb+xq41fsau9j7ExUb+xiPp/sZudb7ExUb+xMVG/sZuNX/GKvI/BIUGfMdvdn/IrfL/xcaIP8n1eb/J9Dh/xkcIf8ZGR7/J8/f/xxCSv8ZGyH/J9Dg/ybQ4P8ZHCL/FSQs/yPK3/8UExj/GE1b/ybS5P8ZGB7/Ghwj/ynW5P8p2Ob/Ghwi/yWrtv8p1eH/Ghwi/xocIv8p1uT/J8XT/xkcIv8m1un/Hb7d/xUYH/8hzOr/HtHu/xcaIf8XGB//I8vi/xgxOv8XGSD/I8rg/yPK4P8XGiD/GUFL/yPP6f8SERj/Fhkh/x3A4f8AAAAAJ2f9/ydr//8mZPH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlYu38J2v//ydo/f8AAAAAAAAAAAd8/fkFqf//Iob8sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMY39awWr//8FfP3/AAAAAAAAAAAFm/7/SfD//wR+/f8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOB/f9B7v//BaX+/wAAAAAAAAAAQ878SAyZ/v9n1v4KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADu9v8DDJb+/z3N/XgAAAAA3/sAAN/7AADf+wAA3/sAAAAAAAAAAAAAAAAAAN/7AAAAAAAAAAAAAAAAAAAAAAAAj/EAAI/5AACP8QAA3/sAAA=="
11 rel="icon" type="image/x-icon" />
12
13<title>{{.Title}}</title>
14
15
16<style>
17 .container-blog {
18 max-width: 600px;
19 margin: 0 auto;
20 }
21
22 ::selection {
23 background: rgb(255, 241, 177);
24 color: #000;
25 }
26
27 ::-moz-selection {
28 background: rgb(255, 241, 177);
29 color: #000;
30 }
31
32 article img {
33 max-width: 120%;
34 width: 120%;
35 position: relative;
36 left: -10%;
37 margin: 40px auto;
38 display: block;
39 border-radius: 5px;
40 }
41
42 article p {
43 display: block;
44 margin-block-start: 1em;
45 margin-block-end: 1em;
46 margin-inline-start: 0px;
47 margin-inline-end: 0px;
48 }
49
50 article ol {
51 display: block;
52 list-style-type: decimal;
53 margin-block-start: 1em;
54 margin-block-end: 1em;
55 margin-inline-start: 0px;
56 margin-inline-end: 0px;
57 padding-inline-start: 40px;
58 }
59
60 article ol>li>ol {
61 margin-block-start: 0 !important;
62 margin-block-end: 0 !important;
63 padding-inline-start: 20px;
64 }
65
66 article ul {
67 display: block;
68 list-style-type: disc;
69 margin-block-start: 1em;
70 margin-block-end: 1em;
71 margin-inline-start: 0px;
72 margin-inline-end: 0px;
73 padding-inline-start: 40px;
74 }
75
76 article code {
77 font-family: monospace;
78 background: rgb(255, 241, 177);
79 border-radius: 5px;
80 padding: 2px 8px;
81 font-weight: 500;
82 }
83
84 article pre {
85 background: unset;
86 padding: unset;
87
88 overflow-x: auto;
89 background: #f8f8f8 !important;
90 padding: 15px 20px;
91 border-radius: 5px;
92
93 margin-block-start: 40px;
94 margin-block-end: 40px;
95 }
96
97 article pre>code {
98 background: unset;
99 padding: unset;
100 font-weight: 400;
101 }
102
103 article h2 {
104 font-size: 180%;
105 line-height: 1.2em;
106 font-weight: 700;
107 margin-block-start: 40px;
108 margin-block-end: 20px;
109 }
110
111 article h3 {
112 margin-block-start: 30px;
113 margin-block-end: 20px;
114 font-size: 160%;
115 line-height: 1.2em;
116 font-weight: 700;
117 }
118
119 table {
120 width: 100%;
121 }
122
123 table,
124 th,
125 td {
126 border: 1px solid black;
127 text-align: left;
128 }
129
130 th,
131 td {
132 padding: 5px 10px;
133 }
134
135 article blockquote {
136 margin-left: 40px;
137 position: relative;
138 margin-block-start: 30px;
139 margin-block-end: 30px;
140 margin-right: 0;
141 }
142
143 article blockquote:before {
144 content: ' ';
145 background-image: url('/general/alert-light.svg');
146 background-size: 30px 30px;
147 height: 30px;
148 width: 30px;
149 position: absolute;
150 left: -40px;
151 top: 6px;
152 }
153
154 article blockquote p {
155 padding-left: 10px;
156 }
157
158 article video {
159 max-width: 100%;
160 margin: 30px auto;
161 display: block;
162 border-radius: 5px;
163 background: #f8f8f8 !important;
164 }
165
166 article audio {
167 width: 100%;
168 outline: none;
169 }
170
171 article .katex-display {
172 margin-block-start: 40px;
173 margin-block-end: 40px;
174 }
175</style>
diff --git a/themes/simple/layouts/partials/header.html b/themes/simple/layouts/partials/header.html
new file mode 100644
index 0000000..e234615
--- /dev/null
+++ b/themes/simple/layouts/partials/header.html
@@ -0,0 +1,18 @@
1<div class="container-blog">
2 <header class="flex py-4 mt-4 mb-6">
3 <h3 class="flex-grow">
4 <a href="/" itemprop="url" class="text-xl font-bold hover:bg-yellow-200">Mitja Felicijan</a>
5 </h3>
6
7 <nav itemscope itemtype="http://schema.org/SiteNavigationElement" class="flex items-center gap-1">
8 <meta itemprop="name" content="Main Menu">
9
10 <a href="https://git.mitjafelicijan.com" target="_blank" rel="noopener nofollow" itemprop="url" class="font-medium px-2 hover:bg-yellow-200">Git</a>
11 <a href="https://files.mitjafelicijan.com" target="_blank" rel="noopener nofollow" itemprop="url" class="font-medium px-2 hover:bg-yellow-200">Files</a>
12 <a href="/curriculum-vitae.html" class="font-medium px-2 hover:bg-yellow-200">CV</a>
13 <a href="/books.html" class="font-medium px-2 hover:bg-yellow-200">Books</a>
14
15 <a href="/index.xml" itemprop="url" class="font-medium px-2 hover:bg-yellow-200">RSS</a>
16 </nav>
17 </header>
18</div>
diff --git a/themes/simple/static/css/.gitkeep b/themes/simple/static/css/.gitkeep
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/themes/simple/static/css/.gitkeep
diff --git a/themes/simple/static/js/.gitkeep b/themes/simple/static/js/.gitkeep
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/themes/simple/static/js/.gitkeep
diff --git a/themes/simple/theme.toml b/themes/simple/theme.toml
new file mode 100644
index 0000000..f958c89
--- /dev/null
+++ b/themes/simple/theme.toml
@@ -0,0 +1,16 @@
1# theme.toml template for a Hugo theme
2# See https://github.com/gohugoio/hugoThemes#themetoml for an example
3
4name = "Simple"
5license = "MIT"
6licenselink = "https://github.com/yourname/yourtheme/blob/master/LICENSE"
7description = ""
8homepage = "http://example.com/"
9tags = []
10features = []
11min_version = "0.41.0"
12
13[author]
14 name = "Mitja Felicijan"
15 homepage = "https://mitjafelicijan.com"
16
diff --git a/tools/dither-images.sh b/tools/dither-images.sh
deleted file mode 100644
index 11d0c04..0000000
--- a/tools/dither-images.sh
+++ /dev/null
@@ -1,6 +0,0 @@
1cd ../assets/
2find . -type f \( -name "*.png" -o -name "*.jpg" \) | while read fname; do
3 echo "$fname"
4 convert "$fname" -type Grayscale -ordered-dither 2x2 "$fname.dith.gif"
5done
6