From 3c588cb48d4d3026c8a00faa8732c0655328e63c Mon Sep 17 00:00:00 2001
From: Robert Günzler
Date: Fri, 2 Oct 2026 10:33:53 +0200
Subject: *
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Automated-commit-by: commitall
Signed-off-by: Robert Günzler
---
Caddyfile | 53 -
Caddyfile.valid_paths | 9 -
humans.txt | 17 -
index.html | 58 -
links | 1 +
links/hero.css | 89 -
links/main.css | 527 -
links/~ssh | 16 -
makefile | 2 +-
map/controls.js | 39 -
map/index.html | 18 -
map/main.js | 284 -
map/style.css | 28 -
media | 1 +
media/content/2025/apr-train.jpg | Bin 46464 -> 0 bytes
media/content/2025/jan-sky.jpg | Bin 18316 -> 0 bytes
media/content/2025/jul-beer.jpg | Bin 43706 -> 0 bytes
media/content/2025/jul-tueb.jpg | Bin 70867 -> 0 bytes
media/content/2025/mar-cistern.jpg | Bin 60862 -> 0 bytes
media/content/2025/mar-istanbul.jpg | Bin 28950 -> 0 bytes
media/content/2025/may-coffee.jpg | Bin 28785 -> 0 bytes
media/content/2025/may-rays.jpg | Bin 57628 -> 0 bytes
media/content/2025/oct-baumk.jpg | Bin 82880 -> 0 bytes
media/content/2025/oct-bbahv.jpg | Bin 44788 -> 0 bytes
media/content/2025/sep-han.jpg | Bin 67777 -> 0 bytes
media/content/about/me.jpg | Bin 90580 -> 0 bytes
media/content/cv.pdf | Bin 25242 -> 0 bytes
media/content/like/sakura.jpg | Bin 217407 -> 0 bytes
media/content/photos/be-anti.jpg | Bin 15009 -> 0 bytes
media/content/photos/be-late-summer.jpg | Bin 47561 -> 0 bytes
media/content/photos/br-arch.jpg | Bin 52084 -> 0 bytes
media/content/photos/br-ferris.jpg | Bin 30970 -> 0 bytes
media/content/photos/br-grilled-cheese.jpg | Bin 23213 -> 0 bytes
media/content/photos/de-traindoor.jpg | Bin 26531 -> 0 bytes
media/content/photos/is-dew.jpg | Bin 46112 -> 0 bytes
media/content/photos/is-figures.jpg | Bin 19715 -> 0 bytes
media/content/photos/jp-gradient.jpg | Bin 35478 -> 0 bytes
media/content/photos/jp-mirror-1.jpg | Bin 53220 -> 0 bytes
media/content/photos/jp-sakura.jpg | Bin 70784 -> 0 bytes
media/content/photos/kr-birches.jpg | Bin 72561 -> 0 bytes
media/content/photos/kr-fog.jpg | Bin 29307 -> 0 bytes
media/content/photos/kr-lamps.jpg | Bin 41668 -> 0 bytes
media/content/photos/kr-moon.jpg | Bin 10485 -> 0 bytes
media/content/photos/tr-boat.jpg | Bin 29165 -> 0 bytes
media/content/photos/tr-hedge.jpg | Bin 55574 -> 0 bytes
.../plan9-cursors/xcursor-plan9-preview.png | Bin 1329 -> 0 bytes
media/content/read/alharthi_celestial.jpg | Bin 4950 -> 0 bytes
media/content/read/atwood_testaments.jpg | Bin 5363 -> 0 bytes
media/content/read/bradbury_martian.jpg | Bin 5094 -> 0 bytes
media/content/read/broad_japan.jpg | Bin 6290 -> 0 bytes
media/content/read/cronin_passage.jpg | Bin 6499 -> 0 bytes
media/content/read/elgin_tongue.jpg | Bin 4701 -> 0 bytes
media/content/read/gibson_neuromancer.jpg | Bin 6992 -> 0 bytes
media/content/read/goenawan_miwako.jpg | Bin 6779 -> 0 bytes
media/content/read/gould_jumper.jpg | Bin 5677 -> 0 bytes
media/content/read/grrm_dunkegg.jpg | Bin 7066 -> 0 bytes
media/content/read/grrm_fireblood.jpg | Bin 6780 -> 0 bytes
media/content/read/hunt_thomas_pragprog.jpg | Bin 3966 -> 0 bytes
media/content/read/kaestner_emil.jpg | Bin 6958 -> 0 bytes
media/content/read/kawabata_snow.jpg | Bin 3226 -> 0 bytes
media/content/read/kawakami_night.jpg | Bin 7521 -> 0 bytes
media/content/read/kowalczuk_freiheit.jpg | Bin 4985 -> 0 bytes
media/content/read/kuang_babel.jpg | Bin 6084 -> 0 bytes
media/content/read/kutscher_stumme_tod.jpg | Bin 5693 -> 0 bytes
media/content/read/lovecraft_madness.jpg | Bin 4199 -> 0 bytes
media/content/read/mann_venedig.jpg | Bin 3932 -> 0 bytes
media/content/read/miller_circe.jpg | Bin 9132 -> 0 bytes
media/content/read/murakami_miso.jpg | Bin 6467 -> 0 bytes
media/content/read/murata_convenience.jpg | Bin 4731 -> 0 bytes
media/content/read/neuvel_only_human.jpg | Bin 4292 -> 0 bytes
media/content/read/rek_devine_bears.jpg | Bin 2610 -> 0 bytes
media/content/read/rek_devine_busy.jpg | Bin 2739 -> 0 bytes
media/content/read/shea_illuminatus.jpg | Bin 6727 -> 0 bytes
media/content/read/smith_shore.jpg | Bin 5813 -> 0 bytes
media/content/read/stephenson_crash.jpg | Bin 6248 -> 0 bytes
media/content/read/vonnegut_champions.jpg | Bin 5522 -> 0 bytes
.../content/sony-wf1000xm3-battery/01_pry_open.jpg | Bin 31359 -> 0 bytes
.../content/sony-wf1000xm3-battery/02_lid_off.jpg | Bin 31003 -> 0 bytes
.../sony-wf1000xm3-battery/03_screws_out.jpg | Bin 26690 -> 0 bytes
.../content/sony-wf1000xm3-battery/04_lift_top.jpg | Bin 61433 -> 0 bytes
.../sony-wf1000xm3-battery/05_battery_out.jpg | Bin 51758 -> 0 bytes
.../sony-wf1000xm3-battery/06_battery_in.jpg | Bin 39397 -> 0 bytes
.../sony-wf1000xm3-battery/battery_comparison.jpg | Bin 94750 -> 0 bytes
.../content/sony-wf1000xm3-battery/headphones.jpg | Bin 41946 -> 0 bytes
media/content/unicode-range/after.jpg | Bin 6478 -> 0 bytes
media/content/unicode-range/before.jpg | Bin 6534 -> 0 bytes
media/interface/logo.svg | 411 -
media/services/icon.png | Bin 15616 -> 0 bytes
media/services/thumbnail.jpg | Bin 11198 -> 0 bytes
robots.txt | 5 -
site/2025.html | 82 +-
site/2026.html | 39 +-
site/404.html | 32 +-
site/Caddyfile | 50 +
site/about.html | 58 +-
site/audio.html | 39 +-
site/bts-rm-pre-debut.html | 32 +-
site/bts-suga-pre-debut.html | 32 +-
site/feed.txt | 4 +-
site/gsix.html | 32 +-
site/hokkaido.html | 39 +-
site/humans.txt | 17 +
site/ibaraki.html | 39 +-
site/index.html | 59 +
site/japan.html | 48 +-
site/journal.html | 32 +-
site/kamakura.html | 39 +-
site/like.html | 45 +-
site/links/hero.css | 89 +
site/links/main.css | 541 +
site/making-the-map.html | 32 +-
site/map/assets/style.json | 12085 +++++++++++++++++++
site/map/controls.js | 39 +
site/map/index.html | 18 +
site/map/main.js | 284 +
site/map/style.css | 28 +
site/media/content/2025/apr-train.jpg | Bin 0 -> 46464 bytes
site/media/content/2025/jan-sky.jpg | Bin 0 -> 18316 bytes
site/media/content/2025/jul-beer.jpg | Bin 0 -> 43706 bytes
site/media/content/2025/jul-tueb.jpg | Bin 0 -> 70867 bytes
site/media/content/2025/mar-cistern.jpg | Bin 0 -> 60862 bytes
site/media/content/2025/mar-istanbul.jpg | Bin 0 -> 28950 bytes
site/media/content/2025/may-coffee.jpg | Bin 0 -> 28785 bytes
site/media/content/2025/may-rays.jpg | Bin 0 -> 57628 bytes
site/media/content/2025/oct-baumk.jpg | Bin 0 -> 82880 bytes
site/media/content/2025/oct-bbahv.jpg | Bin 0 -> 44788 bytes
site/media/content/2025/sep-han.jpg | Bin 0 -> 67777 bytes
site/media/content/about/me.jpg | Bin 0 -> 90580 bytes
site/media/content/about/me.jpg.bak | Bin 0 -> 185261 bytes
site/media/content/cv.pdf | Bin 0 -> 25242 bytes
site/media/content/like/sakura.jpg | Bin 0 -> 217407 bytes
site/media/content/photos/be-anti.jpg | Bin 0 -> 15009 bytes
site/media/content/photos/be-late-summer.jpg | Bin 0 -> 47561 bytes
site/media/content/photos/br-arch.jpg | Bin 0 -> 52084 bytes
site/media/content/photos/br-ferris.jpg | Bin 0 -> 30970 bytes
site/media/content/photos/br-grilled-cheese.jpg | Bin 0 -> 23213 bytes
site/media/content/photos/de-traindoor.jpg | Bin 0 -> 26531 bytes
site/media/content/photos/is-dew.jpg | Bin 0 -> 46112 bytes
site/media/content/photos/is-figures.jpg | Bin 0 -> 19715 bytes
site/media/content/photos/jp-gradient.jpg | Bin 0 -> 35478 bytes
site/media/content/photos/jp-mirror-1.jpg | Bin 0 -> 53220 bytes
site/media/content/photos/jp-sakura.jpg | Bin 0 -> 70784 bytes
site/media/content/photos/kr-birches.jpg | Bin 0 -> 72561 bytes
site/media/content/photos/kr-fog.jpg | Bin 0 -> 29307 bytes
site/media/content/photos/kr-lamps.jpg | Bin 0 -> 41668 bytes
site/media/content/photos/kr-moon.jpg | Bin 0 -> 10485 bytes
site/media/content/photos/tr-boat.jpg | Bin 0 -> 29165 bytes
site/media/content/photos/tr-hedge.jpg | Bin 0 -> 55574 bytes
.../plan9-cursors/xcursor-plan9-preview.png | Bin 0 -> 1329 bytes
site/media/content/read/alharthi_celestial.jpg | Bin 0 -> 4950 bytes
site/media/content/read/atwood_testaments.jpg | Bin 0 -> 5363 bytes
site/media/content/read/bradbury_martian.jpg | Bin 0 -> 5094 bytes
site/media/content/read/broad_japan.jpg | Bin 0 -> 6290 bytes
site/media/content/read/cronin_passage.jpg | Bin 0 -> 6499 bytes
site/media/content/read/elgin_tongue.jpg | Bin 0 -> 4701 bytes
site/media/content/read/gibson_neuromancer.jpg | Bin 0 -> 6992 bytes
site/media/content/read/goenawan_miwako.jpg | Bin 0 -> 6779 bytes
site/media/content/read/gould_jumper.jpg | Bin 0 -> 5677 bytes
site/media/content/read/grrm_dunkegg.jpg | Bin 0 -> 7066 bytes
site/media/content/read/grrm_fireblood.jpg | Bin 0 -> 6780 bytes
site/media/content/read/hunt_thomas_pragprog.jpg | Bin 0 -> 3966 bytes
site/media/content/read/kaestner_emil.jpg | Bin 0 -> 6958 bytes
site/media/content/read/kawabata_snow.jpg | Bin 0 -> 3226 bytes
site/media/content/read/kawakami_night.jpg | Bin 0 -> 7521 bytes
site/media/content/read/kowalczuk_freiheit.jpg | Bin 0 -> 4985 bytes
site/media/content/read/kuang_babel.jpg | Bin 0 -> 6084 bytes
site/media/content/read/kutscher_stumme_tod.jpg | Bin 0 -> 5693 bytes
site/media/content/read/lovecraft_madness.jpg | Bin 0 -> 4199 bytes
site/media/content/read/mann_venedig.jpg | Bin 0 -> 3932 bytes
site/media/content/read/miller_circe.jpg | Bin 0 -> 9132 bytes
site/media/content/read/murakami_miso.jpg | Bin 0 -> 6467 bytes
site/media/content/read/murata_convenience.jpg | Bin 0 -> 4731 bytes
site/media/content/read/neuvel_only_human.jpg | Bin 0 -> 4292 bytes
site/media/content/read/rek_devine_bears.jpg | Bin 0 -> 2610 bytes
site/media/content/read/rek_devine_busy.jpg | Bin 0 -> 2739 bytes
site/media/content/read/shea_illuminatus.jpg | Bin 0 -> 6727 bytes
site/media/content/read/smith_shore.jpg | Bin 0 -> 5813 bytes
site/media/content/read/stephenson_crash.jpg | Bin 0 -> 6248 bytes
site/media/content/read/vonnegut_champions.jpg | Bin 0 -> 5522 bytes
.../content/sony-wf1000xm3-battery/01_pry_open.jpg | Bin 0 -> 31359 bytes
.../content/sony-wf1000xm3-battery/02_lid_off.jpg | Bin 0 -> 31003 bytes
.../sony-wf1000xm3-battery/03_screws_out.jpg | Bin 0 -> 26690 bytes
.../content/sony-wf1000xm3-battery/04_lift_top.jpg | Bin 0 -> 61433 bytes
.../sony-wf1000xm3-battery/05_battery_out.jpg | Bin 0 -> 51758 bytes
.../sony-wf1000xm3-battery/06_battery_in.jpg | Bin 0 -> 39397 bytes
.../sony-wf1000xm3-battery/battery_comparison.jpg | Bin 0 -> 94750 bytes
.../content/sony-wf1000xm3-battery/headphones.jpg | Bin 0 -> 41946 bytes
site/media/content/unicode-range/after.jpg | Bin 0 -> 6478 bytes
site/media/content/unicode-range/before.jpg | Bin 0 -> 6534 bytes
site/media/interface/logo.svg | 411 +
site/media/services/icon.png | Bin 0 -> 15616 bytes
site/media/services/thumbnail.jpg | Bin 0 -> 11198 bytes
site/niigata.html | 39 +-
site/nikko.html | 41 +-
site/notes.html | 44 +-
site/photos.html | 32 +-
site/plan9-cursors.html | 42 +-
site/porta.html | 39 +-
site/pyonji.html | 42 +-
site/read.html | 211 +-
site/read_2024.html | 170 +
site/read_2025.html | 191 +
site/read_2026.html | 127 +
site/robots.txt | 5 +
site/shikoku.html | 39 +-
site/sony-wf1000xm3-battery.html | 41 +-
site/toyama.html | 39 +-
site/unicode-range.html | 42 +-
site/varlink.html | 40 +-
site/yamanashi.html | 39 +-
src/inc/2025.htm | 32 +-
src/inc/2025.md | 28 +-
src/inc/2026.htm | 7 +-
src/inc/2026.md | 8 +-
src/inc/about.htm | 26 +-
src/inc/index.html | 58 +
src/inc/like.htm | 6 +-
src/inc/meta.baseof.htm | 18 +-
src/inc/meta.nav.htm | 2 +-
src/inc/plan9-cursors.htm | 1 +
src/inc/plan9-cursors.md | 2 +
src/inc/pyonji.htm | 1 +
src/inc/pyonji.md | 2 +
src/inc/read.htm | 451 +-
src/inc/read_2024.htm | 107 +
src/inc/read_2025.htm | 128 +
src/inc/read_2026.htm | 64 +
src/inc/unicode-range.htm | 1 +
src/inc/varlink.htm | 1 +
src/inc/varlink.md | 2 +
vcs | 11 +-
~thesis | 1 -
232 files changed, 15435 insertions(+), 2548 deletions(-)
delete mode 100644 Caddyfile
delete mode 100644 Caddyfile.valid_paths
delete mode 100644 humans.txt
delete mode 100644 index.html
create mode 120000 links
delete mode 100644 links/hero.css
delete mode 100644 links/main.css
delete mode 100644 links/~ssh
delete mode 100644 map/controls.js
delete mode 100644 map/index.html
delete mode 100644 map/main.js
delete mode 100644 map/style.css
create mode 120000 media
delete mode 100644 media/content/2025/apr-train.jpg
delete mode 100644 media/content/2025/jan-sky.jpg
delete mode 100644 media/content/2025/jul-beer.jpg
delete mode 100644 media/content/2025/jul-tueb.jpg
delete mode 100644 media/content/2025/mar-cistern.jpg
delete mode 100644 media/content/2025/mar-istanbul.jpg
delete mode 100644 media/content/2025/may-coffee.jpg
delete mode 100644 media/content/2025/may-rays.jpg
delete mode 100644 media/content/2025/oct-baumk.jpg
delete mode 100644 media/content/2025/oct-bbahv.jpg
delete mode 100644 media/content/2025/sep-han.jpg
delete mode 100644 media/content/about/me.jpg
delete mode 100644 media/content/cv.pdf
delete mode 100644 media/content/like/sakura.jpg
delete mode 100644 media/content/photos/be-anti.jpg
delete mode 100644 media/content/photos/be-late-summer.jpg
delete mode 100644 media/content/photos/br-arch.jpg
delete mode 100644 media/content/photos/br-ferris.jpg
delete mode 100644 media/content/photos/br-grilled-cheese.jpg
delete mode 100644 media/content/photos/de-traindoor.jpg
delete mode 100644 media/content/photos/is-dew.jpg
delete mode 100644 media/content/photos/is-figures.jpg
delete mode 100644 media/content/photos/jp-gradient.jpg
delete mode 100644 media/content/photos/jp-mirror-1.jpg
delete mode 100644 media/content/photos/jp-sakura.jpg
delete mode 100644 media/content/photos/kr-birches.jpg
delete mode 100644 media/content/photos/kr-fog.jpg
delete mode 100644 media/content/photos/kr-lamps.jpg
delete mode 100644 media/content/photos/kr-moon.jpg
delete mode 100644 media/content/photos/tr-boat.jpg
delete mode 100644 media/content/photos/tr-hedge.jpg
delete mode 100644 media/content/plan9-cursors/xcursor-plan9-preview.png
delete mode 100644 media/content/read/alharthi_celestial.jpg
delete mode 100644 media/content/read/atwood_testaments.jpg
delete mode 100644 media/content/read/bradbury_martian.jpg
delete mode 100644 media/content/read/broad_japan.jpg
delete mode 100644 media/content/read/cronin_passage.jpg
delete mode 100644 media/content/read/elgin_tongue.jpg
delete mode 100644 media/content/read/gibson_neuromancer.jpg
delete mode 100644 media/content/read/goenawan_miwako.jpg
delete mode 100644 media/content/read/gould_jumper.jpg
delete mode 100644 media/content/read/grrm_dunkegg.jpg
delete mode 100644 media/content/read/grrm_fireblood.jpg
delete mode 100644 media/content/read/hunt_thomas_pragprog.jpg
delete mode 100644 media/content/read/kaestner_emil.jpg
delete mode 100644 media/content/read/kawabata_snow.jpg
delete mode 100644 media/content/read/kawakami_night.jpg
delete mode 100644 media/content/read/kowalczuk_freiheit.jpg
delete mode 100644 media/content/read/kuang_babel.jpg
delete mode 100644 media/content/read/kutscher_stumme_tod.jpg
delete mode 100644 media/content/read/lovecraft_madness.jpg
delete mode 100644 media/content/read/mann_venedig.jpg
delete mode 100644 media/content/read/miller_circe.jpg
delete mode 100644 media/content/read/murakami_miso.jpg
delete mode 100644 media/content/read/murata_convenience.jpg
delete mode 100644 media/content/read/neuvel_only_human.jpg
delete mode 100644 media/content/read/rek_devine_bears.jpg
delete mode 100644 media/content/read/rek_devine_busy.jpg
delete mode 100644 media/content/read/shea_illuminatus.jpg
delete mode 100644 media/content/read/smith_shore.jpg
delete mode 100644 media/content/read/stephenson_crash.jpg
delete mode 100644 media/content/read/vonnegut_champions.jpg
delete mode 100644 media/content/sony-wf1000xm3-battery/01_pry_open.jpg
delete mode 100644 media/content/sony-wf1000xm3-battery/02_lid_off.jpg
delete mode 100644 media/content/sony-wf1000xm3-battery/03_screws_out.jpg
delete mode 100644 media/content/sony-wf1000xm3-battery/04_lift_top.jpg
delete mode 100644 media/content/sony-wf1000xm3-battery/05_battery_out.jpg
delete mode 100644 media/content/sony-wf1000xm3-battery/06_battery_in.jpg
delete mode 100644 media/content/sony-wf1000xm3-battery/battery_comparison.jpg
delete mode 100644 media/content/sony-wf1000xm3-battery/headphones.jpg
delete mode 100644 media/content/unicode-range/after.jpg
delete mode 100644 media/content/unicode-range/before.jpg
delete mode 100644 media/interface/logo.svg
delete mode 100644 media/services/icon.png
delete mode 100644 media/services/thumbnail.jpg
delete mode 100644 robots.txt
create mode 100644 site/Caddyfile
create mode 100644 site/humans.txt
create mode 100644 site/index.html
create mode 100644 site/links/hero.css
create mode 100644 site/links/main.css
create mode 100644 site/map/assets/style.json
create mode 100644 site/map/controls.js
create mode 100644 site/map/index.html
create mode 100644 site/map/main.js
create mode 100644 site/map/style.css
create mode 100644 site/media/content/2025/apr-train.jpg
create mode 100644 site/media/content/2025/jan-sky.jpg
create mode 100644 site/media/content/2025/jul-beer.jpg
create mode 100644 site/media/content/2025/jul-tueb.jpg
create mode 100644 site/media/content/2025/mar-cistern.jpg
create mode 100644 site/media/content/2025/mar-istanbul.jpg
create mode 100644 site/media/content/2025/may-coffee.jpg
create mode 100644 site/media/content/2025/may-rays.jpg
create mode 100644 site/media/content/2025/oct-baumk.jpg
create mode 100644 site/media/content/2025/oct-bbahv.jpg
create mode 100644 site/media/content/2025/sep-han.jpg
create mode 100644 site/media/content/about/me.jpg
create mode 100644 site/media/content/about/me.jpg.bak
create mode 100644 site/media/content/cv.pdf
create mode 100644 site/media/content/like/sakura.jpg
create mode 100644 site/media/content/photos/be-anti.jpg
create mode 100644 site/media/content/photos/be-late-summer.jpg
create mode 100644 site/media/content/photos/br-arch.jpg
create mode 100644 site/media/content/photos/br-ferris.jpg
create mode 100644 site/media/content/photos/br-grilled-cheese.jpg
create mode 100644 site/media/content/photos/de-traindoor.jpg
create mode 100644 site/media/content/photos/is-dew.jpg
create mode 100644 site/media/content/photos/is-figures.jpg
create mode 100644 site/media/content/photos/jp-gradient.jpg
create mode 100644 site/media/content/photos/jp-mirror-1.jpg
create mode 100644 site/media/content/photos/jp-sakura.jpg
create mode 100644 site/media/content/photos/kr-birches.jpg
create mode 100644 site/media/content/photos/kr-fog.jpg
create mode 100644 site/media/content/photos/kr-lamps.jpg
create mode 100644 site/media/content/photos/kr-moon.jpg
create mode 100644 site/media/content/photos/tr-boat.jpg
create mode 100644 site/media/content/photos/tr-hedge.jpg
create mode 100644 site/media/content/plan9-cursors/xcursor-plan9-preview.png
create mode 100644 site/media/content/read/alharthi_celestial.jpg
create mode 100644 site/media/content/read/atwood_testaments.jpg
create mode 100644 site/media/content/read/bradbury_martian.jpg
create mode 100644 site/media/content/read/broad_japan.jpg
create mode 100644 site/media/content/read/cronin_passage.jpg
create mode 100644 site/media/content/read/elgin_tongue.jpg
create mode 100644 site/media/content/read/gibson_neuromancer.jpg
create mode 100644 site/media/content/read/goenawan_miwako.jpg
create mode 100644 site/media/content/read/gould_jumper.jpg
create mode 100644 site/media/content/read/grrm_dunkegg.jpg
create mode 100644 site/media/content/read/grrm_fireblood.jpg
create mode 100644 site/media/content/read/hunt_thomas_pragprog.jpg
create mode 100644 site/media/content/read/kaestner_emil.jpg
create mode 100644 site/media/content/read/kawabata_snow.jpg
create mode 100644 site/media/content/read/kawakami_night.jpg
create mode 100644 site/media/content/read/kowalczuk_freiheit.jpg
create mode 100644 site/media/content/read/kuang_babel.jpg
create mode 100644 site/media/content/read/kutscher_stumme_tod.jpg
create mode 100644 site/media/content/read/lovecraft_madness.jpg
create mode 100644 site/media/content/read/mann_venedig.jpg
create mode 100644 site/media/content/read/miller_circe.jpg
create mode 100644 site/media/content/read/murakami_miso.jpg
create mode 100644 site/media/content/read/murata_convenience.jpg
create mode 100644 site/media/content/read/neuvel_only_human.jpg
create mode 100644 site/media/content/read/rek_devine_bears.jpg
create mode 100644 site/media/content/read/rek_devine_busy.jpg
create mode 100644 site/media/content/read/shea_illuminatus.jpg
create mode 100644 site/media/content/read/smith_shore.jpg
create mode 100644 site/media/content/read/stephenson_crash.jpg
create mode 100644 site/media/content/read/vonnegut_champions.jpg
create mode 100644 site/media/content/sony-wf1000xm3-battery/01_pry_open.jpg
create mode 100644 site/media/content/sony-wf1000xm3-battery/02_lid_off.jpg
create mode 100644 site/media/content/sony-wf1000xm3-battery/03_screws_out.jpg
create mode 100644 site/media/content/sony-wf1000xm3-battery/04_lift_top.jpg
create mode 100644 site/media/content/sony-wf1000xm3-battery/05_battery_out.jpg
create mode 100644 site/media/content/sony-wf1000xm3-battery/06_battery_in.jpg
create mode 100644 site/media/content/sony-wf1000xm3-battery/battery_comparison.jpg
create mode 100644 site/media/content/sony-wf1000xm3-battery/headphones.jpg
create mode 100644 site/media/content/unicode-range/after.jpg
create mode 100644 site/media/content/unicode-range/before.jpg
create mode 100644 site/media/interface/logo.svg
create mode 100644 site/media/services/icon.png
create mode 100644 site/media/services/thumbnail.jpg
create mode 100644 site/read_2024.html
create mode 100644 site/read_2025.html
create mode 100644 site/read_2026.html
create mode 100644 site/robots.txt
create mode 100644 src/inc/index.html
create mode 100644 src/inc/read_2024.htm
create mode 100644 src/inc/read_2025.htm
create mode 100644 src/inc/read_2026.htm
delete mode 120000 ~thesis
diff --git a/Caddyfile b/Caddyfile
deleted file mode 100644
index b2997b4..0000000
--- a/Caddyfile
+++ /dev/null
@@ -1,53 +0,0 @@
-# vim: noet ts=2 sw=2
-{
- admin off
- auto_https off
- http_port {$CADDY_HTTP_PORT:1414}
- default_bind {$CADDY_HOST:0.0.0.0}
-}
-
-http:// {
- encode zstd gzip
-
- handle /healthz {
- respond OK 200
- }
-
- handle_errors {
- @404 expression {http.error.status_code} == 404
- rewrite @404 /site/404.html
- file_server
- }
-
- @valid_paths {
- import Caddyfile.valid_paths
- }
- handle @valid_paths {
- root .
- try_files {path} {path}/index.html {path}.html =404
- file_server
- }
-
- # catch all
- respond 404
-
- log {
- format filter {
- wrap console {
- time_format wall_milli
- level_format color
- }
- fields {
- common_log delete
- request>headers>Accept-Encoding delete
- request>headers>Accept-Language delete
- request>headers>Connection delete
- request>headers>Authorization delete
- request>remote_addr ip_mask {
- ipv4 24
- ipv6 32
- }
- }
- }
- }
-}
diff --git a/Caddyfile.valid_paths b/Caddyfile.valid_paths
deleted file mode 100644
index 47d13ba..0000000
--- a/Caddyfile.valid_paths
+++ /dev/null
@@ -1,9 +0,0 @@
-path /
-path /~*
-path /humans.txt
-path /index.html
-path /robots.txt
-path /links/*
-path /media/*
-path /site/*
-path /map/*
diff --git a/humans.txt b/humans.txt
deleted file mode 100644
index 4ef6ead..0000000
--- a/humans.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-/* WHAT IS THIS? */
- https://humanstxt.org
-
-/* TEAM */
- Everything: Robert
- Site: robert [at] gnzler.de
- Location: Berlin, Germany
-
-/* THANKS */
- Devine (100r.co/wiki.xxiivv.com)
- for the inspiration to throw out hugo and start over
-
-/* SITE */
- Last update: (footer indicates when each page was last updated)
- Language: English
- Doctype: HTML5
- Software: home-grown website generator written in zig, neovim for editing
diff --git a/index.html b/index.html
deleted file mode 100644
index 8ad9049..0000000
--- a/index.html
+++ /dev/null
@@ -1,58 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- gzr.im
-
-
- found
me
-
-
-
-
-
-
diff --git a/links b/links
new file mode 120000
index 0000000..74f4e52
--- /dev/null
+++ b/links
@@ -0,0 +1 @@
+./site/links/
\ No newline at end of file
diff --git a/links/hero.css b/links/hero.css
deleted file mode 100644
index a28f835..0000000
--- a/links/hero.css
+++ /dev/null
@@ -1,89 +0,0 @@
-:root {
- --body-spacing: 0;
- --hero-width: 700px;
- --hero-nav-width: calc(var(--hero-width) / 2);
- --hero-section-width: calc((var(--hero-nav-width) / 2) - (var(--hero-section-border-width) / 2));
- --hero-section-border-width: 1px;
-}
-
-body {
- width: 100vw;
- height: 100vh;
-
- display: grid;
- place-items: center;
-}
-
-main.hero {
- display: grid;
- place-items: center;
-}
-
-main.hero>img {
- height: 33vh;
- width: 66vw;
-}
-
-main.hero>nav {
- width: calc(700px / 2);
-}
-
-main.hero>nav section {
- display: block;
- margin-left: 1rem;
-}
-
-main.hero>nav section+section {
- margin-top: 15px;
-}
-
-main.hero>nav section.left {
- margin-right: var(--hero-section-width);
- text-align: end;
-
- padding-right: 15px;
- border-right: var(--hero-section-border-width) solid var(--fg);
-}
-
-main.hero>nav section.right {
- margin-left: var(--hero-section-width);
- text-align: start;
-
- padding-left: 15px;
- border-left: var(--hero-section-border-width) solid var(--fg);
-}
-
-main.hero ul,
-main.hero ol {
- padding: 0;
- margin: 0;
-}
-
-main.hero>nav li+li {
- margin-top: 5px;
-}
-
-@media (pointer: coarse),
-(hover: none) {
- main.hero {
- [title] {
- position: relative;
- display: inline-flex;
- }
-
- [title]:focus::after {
- content: attr(title);
- position: absolute;
- top: 3rem;
- left: 1rem;
- color: color-mix(in srgb, var(--fg) 90%, transparent);
- background-color: color-mix(in srgb, var(--bg) 90%, transparent);
- border: 1px solid;
- text-wrap: nowrap;
- width: min-content;
- max-width: 100vw;
- padding: 1px 5px;
- z-index: 9999;
- }
- }
-}
diff --git a/links/main.css b/links/main.css
deleted file mode 100644
index 7467bf2..0000000
--- a/links/main.css
+++ /dev/null
@@ -1,527 +0,0 @@
-:root {
- --black: #0f0f0f;
- --white: WhiteSmoke;
- --ac: MediumPurple;
-
- --fg: var(--black);
- --bg: var(--white);
-
- --body-spacing: 45px;
- --body-line-height: 1.3;
- --body-inline-padding: 15px;
-
- --dashed: 1px dashed color-mix(in srgb, var(--bg) 80%, var(--fg));
-}
-
-::selection {
- background: var(--ac);
- opacity: 1.0;
- color: var(--black);
- padding: 10px;
-}
-
-a {
- color: var(--fg);
-
-}
-
-a:hover {
- background: color-mix(in srgb, var(--ac) 40%, transparent);
-}
-
-body {
- background: var(--bg);
- color: var(--fg);
- overflow-x: hidden;
- font-family: var(--ff, sans-serif);
- padding: var(--body-spacing);
- margin: 0;
-}
-
-body>*+* {
- margin-top: var(--body-spacing);
-}
-
-header {
- display: flex;
- gap: var(--body-spacing);
- align-items: center;
-}
-
-header>* {
- display: inline-block;
-}
-
-header a {
- text-decoration: none;
-}
-
-header a img {
- max-height: 55px;
- vertical-align: bottom;
-}
-
-nav section {
- display: inline-block;
- line-height: var(--body-line-height);
- vertical-align: top;
-}
-
-nav section+* {
- margin-left: 1rem;
-}
-
-nav ul {
- margin: 0;
- padding: 0;
-}
-
-main {
- clear: both;
- max-width: 700px;
- margin: 0 auto;
-}
-
-main>* {
- margin-bottom: 30px
-}
-
-main blockquote {
- margin-left: 0;
- border-left: 1px dashed var(--fg);
- padding-left: var(--body-inline-padding);
-}
-
-main>h1 {
- font-size: 1.5rem;
-}
-
-main>h2 {
- font-size: 1.3rem;
-}
-
-main>h3 {
- font-size: 1.2rem;
-}
-
-main>h4 {
- font-size: 1.1rem;
-}
-
-main p {
- line-height: var(--body-line-height);
- margin-top: 0;
-}
-
-figure {
- margin: 0;
- padding-bottom: var(--body-inline-padding);
-}
-
-figure > img {
- max-height: 30vh;
-}
-
-figcaption {
- text-align: end;
- font-size: smaller;
- padding: 2px
-}
-
-main hr {
- border-color: color-mix(in srgb, var(--fg) 20%, var(--bg));
- clear: both;
-}
-
-main img {
- max-width: 100%;
- object-fit: contain;
-}
-
-main>q {
- max-width: 500px;
- display: block;
- margin-left: 30px;
-}
-
-main pre {
- background: color-mix(in srgb, var(--bg) 95%, var(--fg));
- border: var(--dashed);
- padding: var(--body-inline-padding);
- margin-bottom: 30px;
- overflow-x: scroll;
-}
-
-main code {
- font-family: monospace;
-}
-
-main p>code {
- border: var(--dashed);
- padding: 1px 4px;
-}
-
-main code comment {
- color: #777
-}
-
-main ol,
-main ul {
- margin-top: 0;
- margin-bottom: 30px;
- line-height: var(--body-line-height);
-}
-
-/*main ol li+*,*/
-/*main ul li+* {*/
-/* margin-top: 1ex;*/
-/*}*/
-
-main ol li>p,
-main ul li>p {
- margin: 0;
-}
-
-main ol {
- list-style-type: decimal-leading-zero;
-}
-
-main ul {
- list-style-type: square;
-}
-
-/* task list */
-
-main ul.task-list li {
- list-style-type: none;
- padding: 5px;
-}
-
-main ul.task-list li+* {
- margin-top: 1ex;
-}
-
-main ul.task-list li:has(label:hover) {
- padding: 4px;
- background: color-mix(in srgb, var(--fg) 5%, transparent);
- border: 1px solid color-mix(in srgb, var(--fg) 10%, transparent);
-}
-
-main ul.task-list li:has(input:checked) {
- padding: 4px;
- background: color-mix(in srgb, var(--ac) 10%, transparent);
- border: 1px solid color-mix(in srgb, var(--ac) 20%, transparent);
-}
-
-main ul.task-list input {
- margin: 0 1em 0 -2em;
-}
-
-/* table */
-
-main table img {
- max-width: 100%;
- display: block;
- margin: 20px 0;
-}
-
-main table tr th {
- text-align: start;
- font-weight: bold
-}
-
-main table tr>* {
- padding: 5px var(--body-inline-padding);
- vertical-align: top;
-}
-
-/* date */
-
-main span.date {
- font-family: monospace;
- display: inline-block;
- width: 100%;
- text-align: end;
-}
-
-/* toc */
-
-main nav.table-of-contents {
- /*max-width: 30ch;*/
-
- position: sticky;
- top: 1rem;
-
- float: right;
- margin-right: -22ch;
-}
-
-main nav.table-of-contents>ol {
- list-style: inside disclosure-closed;
-}
-
-main nav.table-of-contents>ol>:first-child {
- text-transform: none;
- line-height: 2.0;
-}
-
-/* footnotes */
-
-main section#footnotes {
- margin-bottom: 0;
- font-size: smaller;
-}
-
-main section#footnotes hr {
- display: none;
-}
-
-main .footnote-back {
- margin-left: 1ch;
-}
-
-/* footer */
-
-footer {
- font-size: 0.9rem;
- border-top: 1px solid color-mix(in srgb, var(--fg) 20%, var(--bg));
- padding-top: var(--body-spacing);
- line-height: var(--body-line-height);
- clear: both;
-}
-
-body>a[href="#top"]:last-child {
- float: right;
- margin-top: -2rem;
-}
-
-details[open]>*:not(summary) {
- margin: 1ex 0 0 0;
-}
-
-/* modular */
-
-.col2 {
- columns: 2
-}
-
-.capital {
- text-transform: capitalize
-}
-
-.nocapital {
- text-transform: unset !important;
-}
-
-.notice {
- padding: var(--body-inline-padding);
- border: 1px solid var(--ac);
- background-color: color-mix(in srgb, var(--ac) 10%, var(--bg));
- color: color-mix(in srgb, var(--fg) 90%, var(--bg));
-}
-
-.notice,
-.notice>* {
- font-size: 0.8rem;
-}
-
-.notice h1 {
- text-align: end;
- font-size: 0.9rem;
- text-transform: capitalize;
-}
-
-ul.nobull li {
- list-style-type: none
-}
-
-.hidden {
- display: none
-}
-
-.fullpage {
- /*
- * NOTE: 7rem = the height of header + footer, then the spacing between
- * header and content and footer and line and content
- */
- --header-and-footer-max-height: calc(7rem + (var(--body-spacing) * 3));
-
- width: calc(100vw - (var(--body-spacing) * 2));
- height: calc(100vh - (var(--body-spacing) * 2) - var(--header-and-footer-max-height));
-}
-
-/* puts child item into center */
-.centering {
- display: grid;
- place-items: center;
-}
-
-/* positions self in center */
-.center {
- display: block;
- margin: 0 auto;
-}
-
-.squish {
- display: flex;
- flex-flow: row wrap;
-}
-
-@media (max-width: 768px) {
- .squish {
- width: 100%;
- padding: 0;
- }
-}
-
-.squish>* {
- max-width: 100%;
- max-height: 100%;
-}
-
-.size-s {
- max-height: 150px;
-}
-
-.size-m {
- max-height: 220px;
-}
-
-.size-l {
- max-height: 400px;
-}
-
-.float-l {
- float: left;
- padding-right: var(--body-inline-padding);
-}
-
-.float-r {
- float: right;
- padding-left: var(--body-inline-padding);
-}
-
-.cutout {
- width: 100%;
- max-height: 9rem;
- object-fit: cover;
- object-position: 0 50%;
-}
-
-:is(div, p):has(>.i) {
- display: flex;
- flex-flow: row wrap;
- grid-gap: var(--body-inline-padding);
-}
-
-:is(div, p)>.i {
- max-width: 100%;
-}
-
-/* theme */
-
-@media (prefers-color-scheme: dark) {
- :root {
- --fg: var(--white);
- --bg: var(--black);
- }
-
- .mono {
- filter: invert(1)
- }
-}
-
-/* mobile */
-
-@media (max-width: 768px) {
- :root {
- --body-spacing: 25px;
- }
-
- main ul,
- main ol {
- padding: 0 var(--body-inline-padding);
- }
-
- main ul a,
- main ol a {
- line-height: 1.8;
- }
-
- main img {
- max-width: 100%;
- }
-
- main nav.table-of-contents {
- float: unset;
- margin-right: unset;
- position: unset;
- }
-
- main nav.table-of-contents>ol {
- columns: 2;
- list-style: outside disclosure-closed;
- }
-
- main nav.table-of-contents>ol>:first-child {
- display: none;
- }
-}
-
-@media (max-width: 320px) {}
-
-/* typography */
-
-:root {
- --vf-grad: 0;
-}
-
-@media (prefers-color-scheme: dark) {
- :root {
- --vf-grad: -50;
- }
-}
-
-html {
- font-variation-settings: "GRAD" var(--vf-grad, 0);
-}
-
-main p {
- text-decoration-skip-ink: auto;
-}
-
-main {
- margin-block-start: var(--body-spacing);
-}
-
-main pre,
-main code,
-main var,
-main samp,
-main kbd,
-main h1,
-main h2,
-main h3,
-main h4,
-main h5,
-main h6 {
- -webkit-hyphens: manual;
- hyphens: manual;
-}
-
-h1 {
- font-variant-numeric: lining-nums;
- font-variant-ligatures: discretionary-ligatures;
-}
-
-td,
-math,
-time[datetime*=":"] {
- font-variant-numeric: tabular-nums lining-nums slashed-zero;
-}
-
-iframe {
- border: 0;
- margin: 0;
- padding: 0;
-}
diff --git a/links/~ssh b/links/~ssh
deleted file mode 100644
index 9619d1e..0000000
--- a/links/~ssh
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/makefile b/makefile
index 092f90c..ef67e73 100644
--- a/makefile
+++ b/makefile
@@ -10,7 +10,7 @@ watch: $(rbc_BIN)
$(rbc_BIN) gen --list $(src_DIR) $(site_DIR) | entr -cd -- $(MAKE) gen
serve: $(rbc_BIN)
- $(rbc_BIN) serve .
+ $(rbc_BIN) serve $(site_DIR)
watch-and-serve:
@ $(MAKE) -j2 watch serve
diff --git a/map/controls.js b/map/controls.js
deleted file mode 100644
index e407a0c..0000000
--- a/map/controls.js
+++ /dev/null
@@ -1,39 +0,0 @@
-export class CustomControl {
- _map = undefined;
- _container = undefined;
- _data = undefined;
-
- constructor(data) {
- if (Object.hasOwn(data, "label") &&
- Object.hasOwn(data, "icon") &&
- Object.hasOwn(data, "onclick")) {
- this._data = data;
- } else {
- throw new Error("missing required property");
- }
- }
-
- onAdd(map) {
- this._map = map;
- this._container = document.createElement('div');
- this._container.className = 'maplibregl-ctrl maplibregl-ctrl-group';
-
- const button = document.createElement('button');
- button.type = 'button';
- button.title = this._data.label;
- button.textContent = this._data.icon;
- button.onclick = () => {
- this._data.onclick();
- }
-
- this._container.appendChild(button);
- // this._map.on('mousedown', () => { });
- return this._container;
- }
-
- onRemove() {
- this._container.parentNode.removeChild(this._container);
- // this._map.off('mousedown', () => { });
- this._map = undefined;
- }
-}
diff --git a/map/index.html b/map/index.html
deleted file mode 100644
index a0ca740..0000000
--- a/map/index.html
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/map/main.js b/map/main.js
deleted file mode 100644
index 5340ca1..0000000
--- a/map/main.js
+++ /dev/null
@@ -1,284 +0,0 @@
-import * as MaplibreGL from 'https://cdn.skypack.dev/maplibre-gl?min';
-import * as Diplomat from 'https://cdn.skypack.dev/@americana/diplomat?min';
-import * as PMTiles from 'https://cdn.skypack.dev/pmtiles?min';
-import * as D3 from 'https://cdn.skypack.dev/d3?min';
-import turf from 'https://cdn.skypack.dev/turf?min';
-
-
-// local imports
-import {
- CustomControl,
-} from './controls.js';
-
-// add the PMTiles plugin to the maplibregl global.
-const pmproto = new PMTiles.Protocol();
-MaplibreGL.addProtocol('pmtiles', pmproto.tile);
-
-// globals
-export const map = initMap();
-export const urlState = initUrlState();
-
-
-function initUrlState() {
- const params = new URLSearchParams(window.location.search);
-
- if (params.has('show')) {
- const show = params.get('show');
- const vals = show.split(',');
- if (vals.includes('japan')) {
- loadJapan();
- }
- }
-
- return params;
-}
-
-function initMap() {
- const map = new MaplibreGL.Map({
- container: 'map',
- style: 'https://tiles.openfreemap.org/styles/positron',
- });
-
- // overwrite basemap style
- const style = D3.json('https://tiles.openfreemap.org/styles/positron')
- style.then((data) => {
- data.layers = data.layers.map((l) => {
- if (l.id === "boundary_2") {
- l.paint["line-color"] = "red";
- }
- if (l.id === "boundary_3") {
- l.minzoom = 4;
- l.paint["line-color"] = "orange";
- }
- if (l.id === "label_state") {
- l.minzoom = 4;
- l.paint["text-color"] = "orange";
- }
- if (l.id === "label_other") {
- l.minzoom = 4;
- l.paint["text-color"] = "orange";
- }
- return l;
- });
- map.setStyle(data);
- });
-
- map.addControl(new MaplibreGL.FullscreenControl());
-
- map.addControl(new MaplibreGL.NavigationControl({
- showZoom: true,
- showCompass: true,
- visualizeRoll: true,
- visualizePitch: true,
- }));
-
- map.addControl(new MaplibreGL.GlobeControl());
-
- map.addControl(new MaplibreGL.GeolocateControl({
- positionOptions: {
- enableHighAccuracy: true
- },
- }));
-
- map.addControl(new CustomControl({
- label: 'Japan',
- icon: '🇯🇵',
- onclick: () => {
- loadJapan();
- },
- }));
- map.addControl(new CustomControl({
- label: 'Raw',
- icon: 'R',
- onclick: () => {
- loadRaw();
- },
- }));
- map.addControl(new CustomControl({
- label: 'Visited',
- icon: 'V',
- onclick: () => {
- loadVisited();
- },
- }));
-
- // https://github.com/osm-americana/diplomat/
- map.once("styledata", (event) => {
- Diplomat.localizeStyle(map);
- });
-
- return map;
-}
-
-
-function loadRaw() {
- const raw = D3.json('export-data/data.geojson');
- raw.then((data) => {
- if (map.getSource('raw') === undefined) {
- map.addSource('raw', {
- type: 'geojson',
- data: data,
- });
- map.addLayer({
- id: 'raw',
- source: 'raw',
- type: 'heatmap',
- paint: {
- // Increase the heatmap weight based on frequency and property magnitude
- 'heatmap-weight': [
- 'interpolate',
- ['linear'],
- ['get', 'mag'],
- 0,
- 0,
- 6,
- 1
- ],
- // Increase the heatmap color weight weight by zoom level
- // heatmap-intensity is a multiplier on top of heatmap-weight
- 'heatmap-intensity': [
- 'interpolate',
- ['linear'],
- ['zoom'],
- 0,
- 1,
- 9,
- 3
- ],
- // Color ramp for heatmap. Domain is 0 (low) to 1 (high).
- // Begin color ramp at 0-stop with a 0-transparency color
- // to create a blur-like effect.
- 'heatmap-color': [
- 'interpolate',
- ['linear'],
- ['heatmap-density'],
- 0,
- 'rgba(33,102,172,0)',
- 0.2,
- 'rgb(103,169,207)',
- 0.4,
- 'rgb(209,229,240)',
- 0.6,
- 'rgb(253,219,199)',
- 0.8,
- 'rgb(239,138,98)',
- 1,
- 'rgb(178,24,43)'
- ],
- // Adjust the heatmap radius by zoom level
- 'heatmap-radius': [
- 'interpolate',
- ['linear'],
- ['zoom'],
- 0,
- 2,
- 9,
- 20
- ],
- },
- });
- }
- map.fitBounds(turf.bbox(data), {
- padding: 50,
- });
- })
-}
-
-function loadVisited() {
- // add data
- const vis = D3.json('export-data/visited.geojson');
- vis.then((data) => {
- if (map.getSource('visited') === undefined) {
- map.addSource('visited', {
- type: 'geojson',
- data: data,
- });
- // boundaries
- map.addLayer({
- id: 'visited-bounds',
- type: 'fill',
- source: 'visited',
- layout: {},
- paint: {
- 'fill-color': 'hotpink',
- 'fill-opacity': 0.6,
- },
- filter: ['==', '$type', 'Polygon'],
- });
- // labels
- map.addLayer({
- id: 'visited-labels',
- type: 'symbol',
- source: 'visited',
- layout: {
- 'text-field': '{iso3166}\n{timestamp}',
- 'text-font': ['Noto Sans Regular'],
- 'text-size': 12,
- 'text-variable-anchor': ['top', 'bottom', 'left', 'right'],
- 'text-radial-offset': 0.3,
- 'text-justify': 'auto',
- },
- paint: {
- 'text-color': 'black',
- 'text-opacity': 1.0,
- },
- filter: ['==', '$type', 'Polygon'],
- });
- }
- map.fitBounds(turf.bbox(data), {
- padding: 50,
- });
- });
-}
-
-function loadJapan() {
- function normalizeLocation() {
- let addr = window.location.toString();
- let idx = addr.lastIndexOf("/");
- return addr.slice(0, idx);
- }
-
- const jpn_url = 'export-data/japan-admin_level=4.pmtiles'
- const jpn = new PMTiles.PMTiles(jpn_url);
- pmproto.add(jpn);
- jpn.getHeader().then(hdr => {
- map.fitBounds([[hdr.minLon, hdr.minLat],[hdr.maxLon, hdr.maxLat]], {
- padding: 1,
- });
- // map.addSource('jpn', {
- // type: 'vector',
- // url: `pmtiles://${normalizeLocation()}/${jpn_url}`,
- // attribution: '© OSM-Boundaries'
- // });
- // map.addLayer({
- // id: 'jpn-bounds',
- // source: 'jpn',
- // 'source-layer': 'japan-bounds',
- // type: 'line',
- // layout: {},
- // paint: {
- // 'line-color': 'orange',
- // 'line-width': 2,
- // 'line-opacity': 0.5,
- // },
- // });
- // map.addLayer({
- // id: 'jpn-labels',
- // source: 'jpn',
- // 'source-layer': 'japan-labels',
- // type: 'symbol',
- // layout: {
- // 'text-field': '{name_en}',
- // 'text-font': ['Noto Sans Regular'],
- // 'text-size': 12,
- // 'text-variable-anchor': ['top', 'bottom', 'left', 'right'],
- // 'text-radial-offset': 0.2,
- // 'text-justify': 'auto',
- // },
- // paint: {
- // 'text-color': 'black',
- // 'text-opacity': 1.0,
- // },
- // });
- });
-}
diff --git a/map/style.css b/map/style.css
deleted file mode 100644
index b9639bf..0000000
--- a/map/style.css
+++ /dev/null
@@ -1,28 +0,0 @@
-@import url("https://esm.sh/maplibre-gl/dist/maplibre-gl.css");
-
-body {
- margin: 0;
-}
-
-#map {
- width: 100vw;
- height: 100vh;
-}
-
-header {
- position: absolute;
- top: 0;
- left: 0;
- z-index: 9999;
- padding: 15px 10px;
-
- & nav a {
- background: black;
- color: white;
-
- & [alt="gzr.im"] {
- max-height: 55px;
- vertical-align: bottom;
- }
- }
-}
diff --git a/media b/media
new file mode 120000
index 0000000..5dcb8f9
--- /dev/null
+++ b/media
@@ -0,0 +1 @@
+./site/media/
\ No newline at end of file
diff --git a/media/content/2025/apr-train.jpg b/media/content/2025/apr-train.jpg
deleted file mode 100644
index 874cde3..0000000
Binary files a/media/content/2025/apr-train.jpg and /dev/null differ
diff --git a/media/content/2025/jan-sky.jpg b/media/content/2025/jan-sky.jpg
deleted file mode 100644
index 5e9c6ad..0000000
Binary files a/media/content/2025/jan-sky.jpg and /dev/null differ
diff --git a/media/content/2025/jul-beer.jpg b/media/content/2025/jul-beer.jpg
deleted file mode 100644
index 58af3c4..0000000
Binary files a/media/content/2025/jul-beer.jpg and /dev/null differ
diff --git a/media/content/2025/jul-tueb.jpg b/media/content/2025/jul-tueb.jpg
deleted file mode 100644
index 1d78367..0000000
Binary files a/media/content/2025/jul-tueb.jpg and /dev/null differ
diff --git a/media/content/2025/mar-cistern.jpg b/media/content/2025/mar-cistern.jpg
deleted file mode 100644
index 2f31829..0000000
Binary files a/media/content/2025/mar-cistern.jpg and /dev/null differ
diff --git a/media/content/2025/mar-istanbul.jpg b/media/content/2025/mar-istanbul.jpg
deleted file mode 100644
index ca145bc..0000000
Binary files a/media/content/2025/mar-istanbul.jpg and /dev/null differ
diff --git a/media/content/2025/may-coffee.jpg b/media/content/2025/may-coffee.jpg
deleted file mode 100644
index 962abb1..0000000
Binary files a/media/content/2025/may-coffee.jpg and /dev/null differ
diff --git a/media/content/2025/may-rays.jpg b/media/content/2025/may-rays.jpg
deleted file mode 100644
index 99313c8..0000000
Binary files a/media/content/2025/may-rays.jpg and /dev/null differ
diff --git a/media/content/2025/oct-baumk.jpg b/media/content/2025/oct-baumk.jpg
deleted file mode 100644
index fefc9d5..0000000
Binary files a/media/content/2025/oct-baumk.jpg and /dev/null differ
diff --git a/media/content/2025/oct-bbahv.jpg b/media/content/2025/oct-bbahv.jpg
deleted file mode 100644
index 1d0ba0b..0000000
Binary files a/media/content/2025/oct-bbahv.jpg and /dev/null differ
diff --git a/media/content/2025/sep-han.jpg b/media/content/2025/sep-han.jpg
deleted file mode 100644
index 14db8e8..0000000
Binary files a/media/content/2025/sep-han.jpg and /dev/null differ
diff --git a/media/content/about/me.jpg b/media/content/about/me.jpg
deleted file mode 100644
index a397e09..0000000
Binary files a/media/content/about/me.jpg and /dev/null differ
diff --git a/media/content/cv.pdf b/media/content/cv.pdf
deleted file mode 100644
index 5b2c1cf..0000000
Binary files a/media/content/cv.pdf and /dev/null differ
diff --git a/media/content/like/sakura.jpg b/media/content/like/sakura.jpg
deleted file mode 100644
index f4f176d..0000000
Binary files a/media/content/like/sakura.jpg and /dev/null differ
diff --git a/media/content/photos/be-anti.jpg b/media/content/photos/be-anti.jpg
deleted file mode 100644
index 0d59e8e..0000000
Binary files a/media/content/photos/be-anti.jpg and /dev/null differ
diff --git a/media/content/photos/be-late-summer.jpg b/media/content/photos/be-late-summer.jpg
deleted file mode 100644
index 065afca..0000000
Binary files a/media/content/photos/be-late-summer.jpg and /dev/null differ
diff --git a/media/content/photos/br-arch.jpg b/media/content/photos/br-arch.jpg
deleted file mode 100644
index 2b4bdcf..0000000
Binary files a/media/content/photos/br-arch.jpg and /dev/null differ
diff --git a/media/content/photos/br-ferris.jpg b/media/content/photos/br-ferris.jpg
deleted file mode 100644
index facf08c..0000000
Binary files a/media/content/photos/br-ferris.jpg and /dev/null differ
diff --git a/media/content/photos/br-grilled-cheese.jpg b/media/content/photos/br-grilled-cheese.jpg
deleted file mode 100644
index ff312d2..0000000
Binary files a/media/content/photos/br-grilled-cheese.jpg and /dev/null differ
diff --git a/media/content/photos/de-traindoor.jpg b/media/content/photos/de-traindoor.jpg
deleted file mode 100644
index 22efda1..0000000
Binary files a/media/content/photos/de-traindoor.jpg and /dev/null differ
diff --git a/media/content/photos/is-dew.jpg b/media/content/photos/is-dew.jpg
deleted file mode 100644
index c826591..0000000
Binary files a/media/content/photos/is-dew.jpg and /dev/null differ
diff --git a/media/content/photos/is-figures.jpg b/media/content/photos/is-figures.jpg
deleted file mode 100644
index f86bbb8..0000000
Binary files a/media/content/photos/is-figures.jpg and /dev/null differ
diff --git a/media/content/photos/jp-gradient.jpg b/media/content/photos/jp-gradient.jpg
deleted file mode 100644
index 3699c29..0000000
Binary files a/media/content/photos/jp-gradient.jpg and /dev/null differ
diff --git a/media/content/photos/jp-mirror-1.jpg b/media/content/photos/jp-mirror-1.jpg
deleted file mode 100644
index aa542fa..0000000
Binary files a/media/content/photos/jp-mirror-1.jpg and /dev/null differ
diff --git a/media/content/photos/jp-sakura.jpg b/media/content/photos/jp-sakura.jpg
deleted file mode 100644
index 2566904..0000000
Binary files a/media/content/photos/jp-sakura.jpg and /dev/null differ
diff --git a/media/content/photos/kr-birches.jpg b/media/content/photos/kr-birches.jpg
deleted file mode 100644
index 647c2f0..0000000
Binary files a/media/content/photos/kr-birches.jpg and /dev/null differ
diff --git a/media/content/photos/kr-fog.jpg b/media/content/photos/kr-fog.jpg
deleted file mode 100644
index ea02212..0000000
Binary files a/media/content/photos/kr-fog.jpg and /dev/null differ
diff --git a/media/content/photos/kr-lamps.jpg b/media/content/photos/kr-lamps.jpg
deleted file mode 100644
index 6da8f71..0000000
Binary files a/media/content/photos/kr-lamps.jpg and /dev/null differ
diff --git a/media/content/photos/kr-moon.jpg b/media/content/photos/kr-moon.jpg
deleted file mode 100644
index 44ee5fb..0000000
Binary files a/media/content/photos/kr-moon.jpg and /dev/null differ
diff --git a/media/content/photos/tr-boat.jpg b/media/content/photos/tr-boat.jpg
deleted file mode 100644
index 30eb455..0000000
Binary files a/media/content/photos/tr-boat.jpg and /dev/null differ
diff --git a/media/content/photos/tr-hedge.jpg b/media/content/photos/tr-hedge.jpg
deleted file mode 100644
index e2a79d7..0000000
Binary files a/media/content/photos/tr-hedge.jpg and /dev/null differ
diff --git a/media/content/plan9-cursors/xcursor-plan9-preview.png b/media/content/plan9-cursors/xcursor-plan9-preview.png
deleted file mode 100644
index 83b6f08..0000000
Binary files a/media/content/plan9-cursors/xcursor-plan9-preview.png and /dev/null differ
diff --git a/media/content/read/alharthi_celestial.jpg b/media/content/read/alharthi_celestial.jpg
deleted file mode 100644
index 7637602..0000000
Binary files a/media/content/read/alharthi_celestial.jpg and /dev/null differ
diff --git a/media/content/read/atwood_testaments.jpg b/media/content/read/atwood_testaments.jpg
deleted file mode 100644
index 1cb41b4..0000000
Binary files a/media/content/read/atwood_testaments.jpg and /dev/null differ
diff --git a/media/content/read/bradbury_martian.jpg b/media/content/read/bradbury_martian.jpg
deleted file mode 100644
index 562c847..0000000
Binary files a/media/content/read/bradbury_martian.jpg and /dev/null differ
diff --git a/media/content/read/broad_japan.jpg b/media/content/read/broad_japan.jpg
deleted file mode 100644
index c0d9dd0..0000000
Binary files a/media/content/read/broad_japan.jpg and /dev/null differ
diff --git a/media/content/read/cronin_passage.jpg b/media/content/read/cronin_passage.jpg
deleted file mode 100644
index b530ff2..0000000
Binary files a/media/content/read/cronin_passage.jpg and /dev/null differ
diff --git a/media/content/read/elgin_tongue.jpg b/media/content/read/elgin_tongue.jpg
deleted file mode 100644
index 17fdb25..0000000
Binary files a/media/content/read/elgin_tongue.jpg and /dev/null differ
diff --git a/media/content/read/gibson_neuromancer.jpg b/media/content/read/gibson_neuromancer.jpg
deleted file mode 100644
index 085cb49..0000000
Binary files a/media/content/read/gibson_neuromancer.jpg and /dev/null differ
diff --git a/media/content/read/goenawan_miwako.jpg b/media/content/read/goenawan_miwako.jpg
deleted file mode 100644
index 484be30..0000000
Binary files a/media/content/read/goenawan_miwako.jpg and /dev/null differ
diff --git a/media/content/read/gould_jumper.jpg b/media/content/read/gould_jumper.jpg
deleted file mode 100644
index 9d1d9ea..0000000
Binary files a/media/content/read/gould_jumper.jpg and /dev/null differ
diff --git a/media/content/read/grrm_dunkegg.jpg b/media/content/read/grrm_dunkegg.jpg
deleted file mode 100644
index 15ebeac..0000000
Binary files a/media/content/read/grrm_dunkegg.jpg and /dev/null differ
diff --git a/media/content/read/grrm_fireblood.jpg b/media/content/read/grrm_fireblood.jpg
deleted file mode 100644
index d26dec4..0000000
Binary files a/media/content/read/grrm_fireblood.jpg and /dev/null differ
diff --git a/media/content/read/hunt_thomas_pragprog.jpg b/media/content/read/hunt_thomas_pragprog.jpg
deleted file mode 100644
index 6c8fac6..0000000
Binary files a/media/content/read/hunt_thomas_pragprog.jpg and /dev/null differ
diff --git a/media/content/read/kaestner_emil.jpg b/media/content/read/kaestner_emil.jpg
deleted file mode 100644
index 40a4201..0000000
Binary files a/media/content/read/kaestner_emil.jpg and /dev/null differ
diff --git a/media/content/read/kawabata_snow.jpg b/media/content/read/kawabata_snow.jpg
deleted file mode 100644
index 028a1b7..0000000
Binary files a/media/content/read/kawabata_snow.jpg and /dev/null differ
diff --git a/media/content/read/kawakami_night.jpg b/media/content/read/kawakami_night.jpg
deleted file mode 100644
index ee03fdf..0000000
Binary files a/media/content/read/kawakami_night.jpg and /dev/null differ
diff --git a/media/content/read/kowalczuk_freiheit.jpg b/media/content/read/kowalczuk_freiheit.jpg
deleted file mode 100644
index 0f2bf57..0000000
Binary files a/media/content/read/kowalczuk_freiheit.jpg and /dev/null differ
diff --git a/media/content/read/kuang_babel.jpg b/media/content/read/kuang_babel.jpg
deleted file mode 100644
index 1f06141..0000000
Binary files a/media/content/read/kuang_babel.jpg and /dev/null differ
diff --git a/media/content/read/kutscher_stumme_tod.jpg b/media/content/read/kutscher_stumme_tod.jpg
deleted file mode 100644
index af7cbe8..0000000
Binary files a/media/content/read/kutscher_stumme_tod.jpg and /dev/null differ
diff --git a/media/content/read/lovecraft_madness.jpg b/media/content/read/lovecraft_madness.jpg
deleted file mode 100644
index e9b8b72..0000000
Binary files a/media/content/read/lovecraft_madness.jpg and /dev/null differ
diff --git a/media/content/read/mann_venedig.jpg b/media/content/read/mann_venedig.jpg
deleted file mode 100644
index d9e787b..0000000
Binary files a/media/content/read/mann_venedig.jpg and /dev/null differ
diff --git a/media/content/read/miller_circe.jpg b/media/content/read/miller_circe.jpg
deleted file mode 100644
index 3e87eb7..0000000
Binary files a/media/content/read/miller_circe.jpg and /dev/null differ
diff --git a/media/content/read/murakami_miso.jpg b/media/content/read/murakami_miso.jpg
deleted file mode 100644
index 68a67c0..0000000
Binary files a/media/content/read/murakami_miso.jpg and /dev/null differ
diff --git a/media/content/read/murata_convenience.jpg b/media/content/read/murata_convenience.jpg
deleted file mode 100644
index 59ca7b5..0000000
Binary files a/media/content/read/murata_convenience.jpg and /dev/null differ
diff --git a/media/content/read/neuvel_only_human.jpg b/media/content/read/neuvel_only_human.jpg
deleted file mode 100644
index 98bfc8e..0000000
Binary files a/media/content/read/neuvel_only_human.jpg and /dev/null differ
diff --git a/media/content/read/rek_devine_bears.jpg b/media/content/read/rek_devine_bears.jpg
deleted file mode 100644
index d2dd148..0000000
Binary files a/media/content/read/rek_devine_bears.jpg and /dev/null differ
diff --git a/media/content/read/rek_devine_busy.jpg b/media/content/read/rek_devine_busy.jpg
deleted file mode 100644
index f5f2b13..0000000
Binary files a/media/content/read/rek_devine_busy.jpg and /dev/null differ
diff --git a/media/content/read/shea_illuminatus.jpg b/media/content/read/shea_illuminatus.jpg
deleted file mode 100644
index 56164d4..0000000
Binary files a/media/content/read/shea_illuminatus.jpg and /dev/null differ
diff --git a/media/content/read/smith_shore.jpg b/media/content/read/smith_shore.jpg
deleted file mode 100644
index 6c7ae99..0000000
Binary files a/media/content/read/smith_shore.jpg and /dev/null differ
diff --git a/media/content/read/stephenson_crash.jpg b/media/content/read/stephenson_crash.jpg
deleted file mode 100644
index bbfecec..0000000
Binary files a/media/content/read/stephenson_crash.jpg and /dev/null differ
diff --git a/media/content/read/vonnegut_champions.jpg b/media/content/read/vonnegut_champions.jpg
deleted file mode 100644
index 05c41ed..0000000
Binary files a/media/content/read/vonnegut_champions.jpg and /dev/null differ
diff --git a/media/content/sony-wf1000xm3-battery/01_pry_open.jpg b/media/content/sony-wf1000xm3-battery/01_pry_open.jpg
deleted file mode 100644
index 12ae41d..0000000
Binary files a/media/content/sony-wf1000xm3-battery/01_pry_open.jpg and /dev/null differ
diff --git a/media/content/sony-wf1000xm3-battery/02_lid_off.jpg b/media/content/sony-wf1000xm3-battery/02_lid_off.jpg
deleted file mode 100644
index 566a553..0000000
Binary files a/media/content/sony-wf1000xm3-battery/02_lid_off.jpg and /dev/null differ
diff --git a/media/content/sony-wf1000xm3-battery/03_screws_out.jpg b/media/content/sony-wf1000xm3-battery/03_screws_out.jpg
deleted file mode 100644
index caa06d6..0000000
Binary files a/media/content/sony-wf1000xm3-battery/03_screws_out.jpg and /dev/null differ
diff --git a/media/content/sony-wf1000xm3-battery/04_lift_top.jpg b/media/content/sony-wf1000xm3-battery/04_lift_top.jpg
deleted file mode 100644
index 4b7c97f..0000000
Binary files a/media/content/sony-wf1000xm3-battery/04_lift_top.jpg and /dev/null differ
diff --git a/media/content/sony-wf1000xm3-battery/05_battery_out.jpg b/media/content/sony-wf1000xm3-battery/05_battery_out.jpg
deleted file mode 100644
index 0974adc..0000000
Binary files a/media/content/sony-wf1000xm3-battery/05_battery_out.jpg and /dev/null differ
diff --git a/media/content/sony-wf1000xm3-battery/06_battery_in.jpg b/media/content/sony-wf1000xm3-battery/06_battery_in.jpg
deleted file mode 100644
index 780058b..0000000
Binary files a/media/content/sony-wf1000xm3-battery/06_battery_in.jpg and /dev/null differ
diff --git a/media/content/sony-wf1000xm3-battery/battery_comparison.jpg b/media/content/sony-wf1000xm3-battery/battery_comparison.jpg
deleted file mode 100644
index d29a85b..0000000
Binary files a/media/content/sony-wf1000xm3-battery/battery_comparison.jpg and /dev/null differ
diff --git a/media/content/sony-wf1000xm3-battery/headphones.jpg b/media/content/sony-wf1000xm3-battery/headphones.jpg
deleted file mode 100644
index 2c8c1af..0000000
Binary files a/media/content/sony-wf1000xm3-battery/headphones.jpg and /dev/null differ
diff --git a/media/content/unicode-range/after.jpg b/media/content/unicode-range/after.jpg
deleted file mode 100644
index 40da8b2..0000000
Binary files a/media/content/unicode-range/after.jpg and /dev/null differ
diff --git a/media/content/unicode-range/before.jpg b/media/content/unicode-range/before.jpg
deleted file mode 100644
index bd8bab2..0000000
Binary files a/media/content/unicode-range/before.jpg and /dev/null differ
diff --git a/media/interface/logo.svg b/media/interface/logo.svg
deleted file mode 100644
index 341407d..0000000
--- a/media/interface/logo.svg
+++ /dev/null
@@ -1,411 +0,0 @@
-
-
diff --git a/media/services/icon.png b/media/services/icon.png
deleted file mode 100644
index cff53b9..0000000
Binary files a/media/services/icon.png and /dev/null differ
diff --git a/media/services/thumbnail.jpg b/media/services/thumbnail.jpg
deleted file mode 100644
index 5ad3918..0000000
Binary files a/media/services/thumbnail.jpg and /dev/null differ
diff --git a/robots.txt b/robots.txt
deleted file mode 100644
index 77696ca..0000000
--- a/robots.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-User-agent: *
-Disallow: /
-
-User-agent: GPTBot
-Disallow: /
diff --git a/site/2025.html b/site/2025.html
index 331845c..81ea009 100644
--- a/site/2025.html
+++ b/site/2025.html
@@ -8,7 +8,7 @@
-
+
gzr.im — 2025
@@ -19,21 +19,21 @@
@@ -87,9 +87,7 @@
-
-2025
-
+2025
december
- went to vabali
@@ -101,10 +99,10 @@
- coworked from secondhome
+target="_blank">secondhome↗
- took the caledonian sleeper to london
- went to sotm eu in dundee, scotland
+target="_blank">sotm eu↗ in dundee, scotland
- visited edinburgh
- went to london via amsterdam and eurostar
- deployed geopulse
@@ -121,19 +119,20 @@ class="i size-m" alt="lake" />
saw an m8 played live
went to boiling the ocean 7
+target="_blank">boiling the ocean 7↗
september

- went to all-systems-go
+target="_blank">all-systems-go↗
- had surinamese food
- saw parcels live
- visited amsterdam
- took the sleeper train
-- got really into the passage for two weeks ↪ read
+- got really into the passage for two
+weeks
- had delicious coffee in linden
- played chunithm @ hi-score (again)
- went to hannover (again)
@@ -166,7 +165,8 @@ class="i size-m" alt="coffee" />
june
- saw linkin park at olympiastadion
-- played chunithm @ hi-score
+- played chunithm @ hi-score↗
- went to hannover
- visited gärten der welt
@@ -190,16 +190,16 @@ class="i size-m" alt="coffee" />

-- started like
+- started like
- visited the northern part of niedersachsen
- held our first “plancake”
- learned about unikernels 🐒
- had a hard time hiking in the snow
- visited bușteni, romania
+target="_blank">bușteni↗, romania
- built a hugo page
-- saw engin
-live
+- saw engin↗ live
- started a new job
- bought a new bass
@@ -211,15 +211,15 @@ class="i size-m" alt="basilica-cistern-medusa" />
- watched season 2 of severance
- finished my japanese deck on anki
- went to basilica cistern in istanbul
+target="_blank">basilica cistern↗ in istanbul
- had kokoreç again
-- published unicode-range
+- published unicode-range
- made custom anki cards for turkish
- went to marji’s place in kadiköy
- had lebanese-turkish breakfast
- had seafood dinner in tuzla
+target="_blank">tuzla↗
- visited istanbul
- visited wrocław
@@ -240,44 +240,38 @@ target="_blank">tuzla

-- published plan9-cursors
+- published plan9-cursors
- ate at kaijin ramen and got inspired to make mapo tofu
- implemented gpu support for podman-kube
+target="_blank">implemented↗ gpu support for podman-kube
- reorganised anime folder on shimakaze
- watched one pace “whole cake island” arc
-- published sony-wf1000xm3-battery
+- published sony-wf1000xm3-battery
- played siedler von catan
-- published pyonji
+- published pyonji
- replaced my hugo page with this one
- watched season 1 of mr robot
- started a daily workout and anki (for japanese) routine
- made a collage of bits and pieces collected throughout december
- fixed an aerc stylesheet bug
+target="_blank">fixed↗ an aerc stylesheet bug
- went ice skating
-
+
- [^]