{:routes {"" {:to [:mmm]}
:portfolio {:to [:mmm "/portfolio"]}
; workshops
:xy-music {:to [:mmm "/workshops/xy-music"]}
; research
:self-hosted {:to [:mmm "/blog/self-hosted_virtual_home"]}
:aspect-ratios {:to [:mmm "/blog/aspect_ratios"]}
:why-redirectly {:to [:mmm "/blog/why_redirectly"]}
:realities {:to [:mmm "/research/realities"]}
:watch-cad {:to "https://www.youtube.com/watch?v=zlG01j462A4"}
:alivecoding {:to [:mmm "/research/alivecoding"]}
:ba {:to [:mmm "/research/mmmfs"]}
"ba/pdf" {:to [:mmm "/research/mmmfs" ":application/pdf"]}
"ba/log" {:to [:mmm "/research/mmmfs/ba_log"]}
"ba/ref/nms" {:to "https://netmarketshare.com/operating-system-market-share.aspx?options=%7B%22filter%22%3A%7B%22%24and%22%3A%5B%7B%22deviceType%22%3A%7B%22%24in%22%3A%5B%22Desktop%2Flaptop%22%2C%22Mobile%22%5D%7D%7D%5D%7D%2C%22dateLabel%22%3A%22Trend%22%2C%22attributes%22%3A%22share%22%2C%22group%22%3A%22platform%22%2C%22sort%22%3A%7B%22share%22%3A-1%7D%2C%22id%22%3A%22platformsDesktop%22%2C%22dateInterval%22%3A%22Monthly%22%2C%22dateStart%22%3A%222018-12%22%2C%22dateEnd%22%3A%222019-11%22%2C%22hiddenSeries%22%3A%7B%7D%2C%22tableOrder%22%3A%5B%5B2%2C%22desc%22%5D%5D%2C%22segments%22%3A%22-1000%22%7D"}
; projects
:plonat-atek {:to [:mmm "/games/plonat_atek"]}
:iii-telefoni {:to [:mmm "/projects/iii-telefoni"]}
:btrktrl {:to [:mmm "/projects/btrktrl"]}
:VJmidiKit {:to [:mmm "/projects/VJmidiKit"]}
:vcvmods {:to "https://github.com/s-ol/vcvmods"}
"vcvmods/doc" {:to "https://github.com/s-ol/vcvmods/blob/master/README.md"}
:redirectly {:to [:mmm "/blog/why_redirectly"]}
"redirectly/src" {:to [:klaus "redirectly"]}
:alive {:to "https://alive.s-ol.nu/main"}
"alive/src" {:to "https://github.com/s-ol/alive"}
:glsl-view {:to [:klaus "glsl-view"]}
:hex12pad {:to "https://kb.s-ol.nu/0xC.pad/"}
:0xC.pad {:to "https://kb.s-ol.nu/0xC.pad/"}
"0xC.pad/cfg" {:to "https://config.qmk.fm/#/s_ol/0xc_pad/LAYOUT"}
:0x2C.board {:to "https://fabacademy.org/2020/labs/opendot/students/sol-bekic/projects/keyboard/"}
"0x2C.board/cfg" {:to "https://qmk.s-ol.nu/#/s_ol/0x2c_board/LAYOUT"}
:0x33.board {:to "https://kb.s-ol.nu/0x33.board/"}
:isokbexp {:to "https://isokb.s-ol.nu"}
"isokbexp/src" {:to [:klaus "isomorphic-kb-explorer"]}
; legacy blog posts
:blog {:to [:mmm "/blog"]}
"blog/2015/06-27/challenging-myself" {:to [:mmm "/blog/challenging_myself"] :status 301}
"blog/2015/06-29/stencils-101" {:to [:mmm "/blog/stencils_101"] :status 301}
"blog/2015/08-08/automating-my-rice" {:to [:mmm "/blog/automating_my_rice"] :status 301}
"blog/2015/08-25/ludum-dare-33-postmortem" {:to [:mmm "/blog/ludum_dare_33_postmortem"] :status 301}
"blog/2016/05-29/love-lua-photoshop-and-games" {:to [:mmm "/blog/love_lua_photoshop_and_games"] :status 301}
"blog/2017/06-26/video-synth-research" {:to [:mmm "blog/video_synth_research"] :status 301}
"blog/2017/06-28/clocks-triggers-gates" {:to [:mmm "blog/clocks_triggers_gates"] :status 301}
"blog/2017/07-04/stretching-gates" {:to [:mmm "blog/stretching_gates"]} :status 301}
:404 "
<html>
<head>
<meta charset=\"UTF-8\">
<title>not found</title>
</head>
<body>
<h3>entry not found :(</h3>
<p>
if you followed a link here, please let me know at s+missing <i><ät></i> s-ol <i><döt></i> nu.
</p>
<p>
in the meantime, you may find what you were looking for at <a href=\"//mmm.s-ol.nu\">mmm.s-ol.nu</a>.
</p>
</body>
</html>"}