diff options
| -rw-r--r-- | content/posts/atk16-my-homegrown-computer/atk16-text-mode.png (renamed from static/files/atk16-text-mode.png) | bin | 427840 -> 427840 bytes | |||
| -rw-r--r-- | content/posts/atk16-my-homegrown-computer/index.md (renamed from content/posts/atk16-my-homegrown-computer.md) | 2 | ||||
| -rw-r--r-- | content/posts/cassettes/cassette_player.jpeg (renamed from static/files/cassette_player.jpeg) | bin | 3747638 -> 3747638 bytes | |||
| -rw-r--r-- | content/posts/cassettes/index.md (renamed from content/posts/cassettes.md) | 2 | ||||
| -rw-r--r-- | content/posts/deploying-the-garden/index.md (renamed from content/posts/deploying-the-garden.md) | 2 | ||||
| -rw-r--r-- | content/posts/deploying-the-garden/repo_langs.png (renamed from static/files/repo_langs.png) | bin | 25064 -> 25064 bytes | |||
| -rw-r--r-- | content/posts/diddle-event-scheduler/diddle_screenshot.png (renamed from static/files/diddle_screenshot.png) | bin | 100453 -> 100453 bytes | |||
| -rw-r--r-- | content/posts/diddle-event-scheduler/index.md (renamed from content/posts/diddle-event-scheduler.md) | 2 | ||||
| -rw-r--r-- | content/posts/eurobsdcon-2025-conf-notes/eurobsdcon_2025_binders.jpeg (renamed from static/files/eurobsdcon_2025_binders.jpeg) | bin | 3375983 -> 3375983 bytes | |||
| -rw-r--r-- | content/posts/eurobsdcon-2025-conf-notes/eurobsdcon_2025_cevapi.jpeg (renamed from static/files/eurobsdcon_2025_cevapi.jpeg) | bin | 3111850 -> 3111850 bytes | |||
| -rw-r--r-- | content/posts/eurobsdcon-2025-conf-notes/eurobsdcon_2025_group.jpeg (renamed from static/files/eurobsdcon_2025_group.jpeg) | bin | 621216 -> 621216 bytes | |||
| -rw-r--r-- | content/posts/eurobsdcon-2025-conf-notes/eurobsdcon_2025_hallway.jpeg (renamed from static/files/eurobsdcon_2025_hallway.jpeg) | bin | 4168772 -> 4168772 bytes | |||
| -rw-r--r-- | content/posts/eurobsdcon-2025-conf-notes/index.md (renamed from content/posts/eurobsdcon-2025-conf-notes.md) | 8 | ||||
| -rw-r--r-- | content/posts/home-server-part-1/3-2-1-Backup-Rule.png (renamed from static/files/3-2-1-Backup-Rule.png) | bin | 34158 -> 34158 bytes | |||
| -rw-r--r-- | content/posts/home-server-part-1/aliexpress_minipc.png (renamed from static/files/aliexpress_minipc.png) | bin | 793558 -> 793558 bytes | |||
| -rw-r--r-- | content/posts/home-server-part-1/do-june-billing.png (renamed from static/files/do-june-billing.png) | bin | 133566 -> 133566 bytes | |||
| -rw-r--r-- | content/posts/home-server-part-1/index.md (renamed from content/posts/home-server-part-1.md) | 8 | ||||
| -rw-r--r-- | content/posts/home-server-part-1/old-man-yells-at-cloud.png (renamed from static/files/old-man-yells-at-cloud.png) | bin | 1059057 -> 1059057 bytes | |||
| -rw-r--r-- | content/posts/home-server-part-2/aliexpress_minipc.png | bin | 0 -> 793558 bytes | |||
| -rw-r--r-- | content/posts/home-server-part-2/aliexpress_minipc_results.png (renamed from static/files/aliexpress_minipc_results.png) | bin | 1360509 -> 1360509 bytes | |||
| -rw-r--r-- | content/posts/home-server-part-2/index.md (renamed from content/posts/home-server-part-2.md) | 4 | ||||
| -rw-r--r-- | content/posts/home-server-part-3/index.md (renamed from content/posts/home-server-part-3.md) | 4 | ||||
| -rw-r--r-- | content/posts/home-server-part-3/pursotin_fastfetch.png (renamed from static/files/pursotin_fastfetch.png) | bin | 285448 -> 285448 bytes | |||
| -rw-r--r-- | content/posts/home-server-part-3/pursotin_raidz.svg (renamed from static/files/pursotin_raidz.svg) | 0 | ||||
| -rw-r--r-- | content/posts/home-server-part-4/index.md (renamed from content/posts/home-server-part-4.md) | 10 | ||||
| -rw-r--r-- | content/posts/home-server-part-4/pursotin_network.svg (renamed from static/files/pursotin_network.svg) | 0 | ||||
| -rw-r--r-- | content/posts/it-doesnt-mean-that/index.md (renamed from content/posts/it-doesnt-mean-that.md) | 6 | ||||
| -rw-r--r-- | content/posts/it-doesnt-mean-that/wikimedia_monad.svg (renamed from static/files/wikimedia_monad.svg) | 0 | ||||
| -rw-r--r-- | content/posts/now-2024-fall/diffuser_1.jpg (renamed from static/files/diffuser_1.jpg) | bin | 3447758 -> 3447758 bytes | |||
| -rw-r--r-- | content/posts/now-2024-fall/diffuser_2.jpg (renamed from static/files/diffuser_2.jpg) | bin | 3239064 -> 3239064 bytes | |||
| -rw-r--r-- | content/posts/now-2024-fall/diffuser_3.jpg (renamed from static/files/diffuser_3.jpg) | bin | 3723759 -> 3723759 bytes | |||
| -rw-r--r-- | content/posts/now-2024-fall/index.md (renamed from content/posts/now-2024-fall.md) | 6 | ||||
| -rw-r--r-- | content/posts/now-2024-spring/index.md (renamed from content/posts/now-2024-spring.md) | 2 | ||||
| -rw-r--r-- | content/posts/now-2024-spring/jojo-in-snow.webm (renamed from static/files/jojo-in-snow.webm) | bin | 1508041 -> 1508041 bytes | |||
| -rw-r--r-- | content/posts/now-2024-summer/2024-wines.jpg (renamed from static/files/2024-wines.jpg) | bin | 3095038 -> 3095038 bytes | |||
| -rw-r--r-- | content/posts/now-2024-summer/aws-exam-drink.jpeg (renamed from static/files/aws-exam-drink.jpeg) | bin | 2606811 -> 2606811 bytes | |||
| -rw-r--r-- | content/posts/now-2024-summer/index.md (renamed from content/posts/now-2024-summer.md) | 4 | ||||
| -rw-r--r-- | content/posts/now-2025-fall/index.md (renamed from content/posts/now-2025-fall.md) | 6 | ||||
| -rw-r--r-- | content/posts/now-2025-fall/valokate_1.jpg (renamed from static/files/valokate_1.jpg) | bin | 3726158 -> 3726158 bytes | |||
| -rw-r--r-- | content/posts/now-2025-fall/valokate_2.jpg (renamed from static/files/valokate_2.jpg) | bin | 1931666 -> 1931666 bytes | |||
| -rw-r--r-- | content/posts/now-2025-fall/villa.jpeg (renamed from static/files/villa.jpeg) | bin | 2572301 -> 2572301 bytes | |||
| -rw-r--r-- | content/posts/now-2025-summer/index.md (renamed from content/posts/now-2025-summer.md) | 6 | ||||
| -rw-r--r-- | content/posts/now-2025-summer/kenrokuen.jpg (renamed from static/files/kenrokuen.jpg) | bin | 8081996 -> 8081996 bytes | |||
| -rw-r--r-- | content/posts/now-2025-summer/samurai_garden.jpeg (renamed from static/files/samurai_garden.jpeg) | bin | 6622434 -> 6622434 bytes | |||
| -rw-r--r-- | content/posts/now-2025-summer/wagyu_grill.jpeg (renamed from static/files/wagyu_grill.jpeg) | bin | 3270292 -> 3270292 bytes | |||
| -rw-r--r-- | content/posts/now-2025-winter/2025_wrapped_genres.jpeg (renamed from static/files/2025_wrapped_genres.jpeg) | bin | 173496 -> 173496 bytes | |||
| -rw-r--r-- | content/posts/now-2025-winter/backdoor_feature_done.jpeg (renamed from static/files/backdoor_feature_done.jpeg) | bin | 3525718 -> 3525718 bytes | |||
| -rw-r--r-- | content/posts/now-2025-winter/backdoor_feature_wip.jpeg (renamed from static/files/backdoor_feature_wip.jpeg) | bin | 3340312 -> 3340312 bytes | |||
| -rw-r--r-- | content/posts/now-2025-winter/dopamine_office.jpeg (renamed from static/files/dopamine_office.jpeg) | bin | 3272619 -> 3272619 bytes | |||
| -rw-r--r-- | content/posts/now-2025-winter/index.md (renamed from content/posts/now-2025-winter.md) | 12 | ||||
| -rw-r--r-- | content/posts/now-2025-winter/muumimusiikkia.jpeg (renamed from static/files/muumimusiikkia.jpeg) | bin | 2951215 -> 2951215 bytes | |||
| -rw-r--r-- | content/posts/now-2025-winter/taulu_koira.jpeg (renamed from static/files/taulu_koira.jpeg) | bin | 2778093 -> 2778093 bytes | |||
| -rw-r--r-- | content/posts/qcon-london-2024-takeaways/fish-and-chips-duke-of-argyll.jpg (renamed from static/files/fish-and-chips-duke-of-argyll.jpg) | bin | 2997683 -> 2997683 bytes | |||
| -rw-r--r-- | content/posts/qcon-london-2024-takeaways/index.md (renamed from content/posts/qcon-london-2024-takeaways.md) | 4 | ||||
| -rw-r--r-- | content/posts/qcon-london-2024-takeaways/london-from-above.jpg (renamed from static/files/london-from-above.jpg) | bin | 3041148 -> 3041148 bytes | |||
| -rw-r--r-- | content/posts/subjective-review-miru/hinokodo-static-abyss.png (renamed from static/files/hinokodo-static-abyss.png) | bin | 2457949 -> 2457949 bytes | |||
| -rw-r--r-- | content/posts/subjective-review-miru/index.md (renamed from content/posts/subjective-review-miru.md) | 6 | ||||
| -rw-r--r-- | content/posts/subjective-review-miru/miru_gameplay.jpeg (renamed from static/files/miru_gameplay.jpeg) | bin | 2317180 -> 2317180 bytes | |||
| -rw-r--r-- | content/posts/subjective-review-miru/miru_time_to_kill_triple.jpg (renamed from static/files/miru_time_to_kill_triple.jpg) | bin | 1559052 -> 1559052 bytes | |||
| -rw-r--r-- | content/posts/theres-an-rss-feed-now/index.md (renamed from content/posts/theres-an-rss-feed-now.md) | 2 | ||||
| -rw-r--r-- | content/posts/theres-an-rss-feed-now/internet_surf.png (renamed from static/files/internet_surf.png) | bin | 394047 -> 394047 bytes | |||
| -rw-r--r-- | content/posts/unfold/index.md (renamed from content/posts/unfold.md) | 4 | ||||
| -rw-r--r-- | content/posts/unfold/indieweb_presentation.png (renamed from static/files/indieweb_presentation.png) | bin | 333070 -> 333070 bytes | |||
| -rw-r--r-- | content/posts/unfold/reveal-js-logo.png (renamed from static/files/reveal-js-logo.png) | bin | 85023 -> 85023 bytes | |||
| -rw-r--r-- | content/projects/_index.md | 8 | ||||
| -rw-r--r-- | content/projects/atk16/block-diagram.svg (renamed from static/files/atk16-block-diagram.svg) | 0 | ||||
| -rw-r--r-- | content/projects/atk16/index.md (renamed from content/projects/ATK16.md) | 4 | ||||
| -rw-r--r-- | content/projects/atk16/text-mode.png | bin | 0 -> 427840 bytes | |||
| -rw-r--r-- | content/projects/diddle/diddle_screenshot.png | bin | 0 -> 100453 bytes | |||
| -rw-r--r-- | content/projects/diddle/index.md (renamed from content/projects/diddle.md) | 2 |
70 files changed, 56 insertions, 58 deletions
diff --git a/static/files/atk16-text-mode.png b/content/posts/atk16-my-homegrown-computer/atk16-text-mode.png Binary files differindex 93c2752..93c2752 100644 --- a/static/files/atk16-text-mode.png +++ b/content/posts/atk16-my-homegrown-computer/atk16-text-mode.png diff --git a/content/posts/atk16-my-homegrown-computer.md b/content/posts/atk16-my-homegrown-computer/index.md index 6b9f583..ba8bf84 100644 --- a/content/posts/atk16-my-homegrown-computer.md +++ b/content/posts/atk16-my-homegrown-computer/index.md @@ -5,7 +5,7 @@ extra: kind: project --- - + **ATK16** is a learning project I've been working on for some time. It started off as a 16-bit, reduced instruction set computer (RISC) CPU design but evolved into an entire computer with peripherals and software. diff --git a/static/files/cassette_player.jpeg b/content/posts/cassettes/cassette_player.jpeg Binary files differindex 6591cc4..6591cc4 100644 --- a/static/files/cassette_player.jpeg +++ b/content/posts/cassettes/cassette_player.jpeg diff --git a/content/posts/cassettes.md b/content/posts/cassettes/index.md index 5b8f6b6..92d3887 100644 --- a/content/posts/cassettes.md +++ b/content/posts/cassettes/index.md @@ -11,7 +11,7 @@ They feel much more approachable than vinyls. I dislike snobbery. ## So I bought a cassette player -{{ fig(src="/files/cassette_player.jpeg", alt="A Sony cassette recorder next to a pile of cassettes") }} +{{ fig(src="cassette_player.jpeg", alt="A Sony cassette recorder next to a pile of cassettes") }} It’s a Sony TCM-459V and it’s only a bit noisy and wobbly. It can record too. diff --git a/content/posts/deploying-the-garden.md b/content/posts/deploying-the-garden/index.md index 105bfb7..cdb5caf 100644 --- a/content/posts/deploying-the-garden.md +++ b/content/posts/deploying-the-garden/index.md @@ -31,7 +31,7 @@ Making changes to the build process itself, or the HTML template, requires a com Most of the heavy lifting is done by `pandoc`. The glue parts use an obscure and ancient language with many curved sigils. Give it a try. -{{ fig(src="/files/repo_langs.png", alt="A GitHub repository language breakdown showing that most of the code is written in Scheme.") }} +{{ fig(src="repo_langs.png", alt="A GitHub repository language breakdown showing that most of the code is written in Scheme.") }} ## Hosting diff --git a/static/files/repo_langs.png b/content/posts/deploying-the-garden/repo_langs.png Binary files differindex 9c85b3b..9c85b3b 100644 --- a/static/files/repo_langs.png +++ b/content/posts/deploying-the-garden/repo_langs.png diff --git a/static/files/diddle_screenshot.png b/content/posts/diddle-event-scheduler/diddle_screenshot.png Binary files differindex 437567e..437567e 100644 --- a/static/files/diddle_screenshot.png +++ b/content/posts/diddle-event-scheduler/diddle_screenshot.png diff --git a/content/posts/diddle-event-scheduler.md b/content/posts/diddle-event-scheduler/index.md index 701e252..033a352 100644 --- a/content/posts/diddle-event-scheduler.md +++ b/content/posts/diddle-event-scheduler/index.md @@ -13,7 +13,7 @@ Diddle ([live instance](https://diddle.jan.systems/), [Github](https://github.co **Note**: The instance hosted on my domain might go down any second. Use it at your own discretion. -{{ fig(src="/files/diddle_screenshot.png", alt="Diddle screenshot showing an answerable poll") }} +{{ fig(src="diddle_screenshot.png", alt="Diddle screenshot showing an answerable poll") }} The first 80% of the project was done in two evenings. The last 80% was done during the next week. The tech stack is the _get-shit-done_ stack: **Python** + **Flask** + **PostgreSQL**. There is no required client side javascript: all client side logic is strictly for [progressive enhancement](https://developer.mozilla.org/en-US/docs/Glossary/Progressive_Enhancement). You can use "dumb" browsers like w3m or lynx to enjoy Diddle just fine. diff --git a/static/files/eurobsdcon_2025_binders.jpeg b/content/posts/eurobsdcon-2025-conf-notes/eurobsdcon_2025_binders.jpeg Binary files differindex ee02077..ee02077 100644 --- a/static/files/eurobsdcon_2025_binders.jpeg +++ b/content/posts/eurobsdcon-2025-conf-notes/eurobsdcon_2025_binders.jpeg diff --git a/static/files/eurobsdcon_2025_cevapi.jpeg b/content/posts/eurobsdcon-2025-conf-notes/eurobsdcon_2025_cevapi.jpeg Binary files differindex 67595b4..67595b4 100644 --- a/static/files/eurobsdcon_2025_cevapi.jpeg +++ b/content/posts/eurobsdcon-2025-conf-notes/eurobsdcon_2025_cevapi.jpeg diff --git a/static/files/eurobsdcon_2025_group.jpeg b/content/posts/eurobsdcon-2025-conf-notes/eurobsdcon_2025_group.jpeg Binary files differindex b94c739..b94c739 100644 --- a/static/files/eurobsdcon_2025_group.jpeg +++ b/content/posts/eurobsdcon-2025-conf-notes/eurobsdcon_2025_group.jpeg diff --git a/static/files/eurobsdcon_2025_hallway.jpeg b/content/posts/eurobsdcon-2025-conf-notes/eurobsdcon_2025_hallway.jpeg Binary files differindex f15217a..f15217a 100644 --- a/static/files/eurobsdcon_2025_hallway.jpeg +++ b/content/posts/eurobsdcon-2025-conf-notes/eurobsdcon_2025_hallway.jpeg diff --git a/content/posts/eurobsdcon-2025-conf-notes.md b/content/posts/eurobsdcon-2025-conf-notes/index.md index f10c781..33a0f7d 100644 --- a/content/posts/eurobsdcon-2025-conf-notes.md +++ b/content/posts/eurobsdcon-2025-conf-notes/index.md @@ -11,7 +11,7 @@ My event experience consisted of two days of "trainings", sometimes also referre The event was held at the Faculty of Electrical Engineering and Computing (University of Zagreb). The venue was nostalgic in a way since it reminded me a lot of the building where I started my studies in Aalto University. Functional. -{{ fig(src="/files/eurobsdcon_2025_hallway.jpeg", alt="A photo of a stairway in the conference venue") }} +{{ fig(src="eurobsdcon_2025_hallway.jpeg", alt="A photo of a stairway in the conference venue") }} Recordings from the presentation rooms can be found on [Youtube](https://www.youtube.com/playlist?list=PLskKNopggjc6bnhXOX5MQbaPKEvohzjYH). You might have to check the talk schedule to find the timestamp of a given talk. @@ -23,7 +23,7 @@ I attended a two day lab by Prof. Kirk McKusick, who is a well known figure in t You see, I'm not a huge kernel guy (at least not yet) so I was a bit worried that the lab content would go over my head. What happened though surprised me: I understood something like 90% of the material. Apparently I had the necessary prerequisite knowledge after all, or maybe Kirk was just so good at teaching. Maybe both. -{{ fig(src="/files/eurobsdcon_2025_binders.jpeg", alt="Two spiral notebooks of lecture notes, one for each day") }} +{{ fig(src="eurobsdcon_2025_binders.jpeg", alt="Two spiral notebooks of lecture notes, one for each day") }} ## Favorite talks @@ -61,7 +61,7 @@ I noticed that there was very little "hierarchy" at the event. Speakers, sponsor Since the event, I have familiarised myself with BSD community channels such as the [FreeBSD IRC channels](https://wiki.freebsd.org/IRC/Channels) on Libera.Chat and the various forums of [BSD Cafe](https://wiki.bsd.cafe/), hosted by Stefano Marinelli, who was also speaking at the conference. -{{ fig(src="/files/eurobsdcon_2025_group.jpeg", alt="A group photo was taken on the final day") }} +{{ fig(src="eurobsdcon_2025_group.jpeg", alt="A group photo was taken on the final day") }} ## There and back again, and the touristy bits @@ -74,7 +74,7 @@ Traditional & local foods were my primary target when looking for restaurants. M - **ćevapi** at _Plac_ ([Tripadvisor](https://www.tripadvisor.com/Restaurant_Review-g294454-d7075337-Reviews-Plac-Zagreb_Central_Croatia.html)), pictured below - **štrukli** at _La Štruk_ ([Website](https://www.lastruk.com/)) -{{ fig(src="/files/eurobsdcon_2025_cevapi.jpeg", alt="A serving of ćevapi with cream cheese and paprika spread") }} +{{ fig(src="eurobsdcon_2025_cevapi.jpeg", alt="A serving of ćevapi with cream cheese and paprika spread") }} The return trip was more eventful. The plane didn't start boarding until it was more than an hour late. We were never told the reason. That delay caused me to miss my connecting flight 😑 diff --git a/static/files/3-2-1-Backup-Rule.png b/content/posts/home-server-part-1/3-2-1-Backup-Rule.png Binary files differindex ed6b675..ed6b675 100644 --- a/static/files/3-2-1-Backup-Rule.png +++ b/content/posts/home-server-part-1/3-2-1-Backup-Rule.png diff --git a/static/files/aliexpress_minipc.png b/content/posts/home-server-part-1/aliexpress_minipc.png Binary files differindex 0cb57a4..0cb57a4 100644 --- a/static/files/aliexpress_minipc.png +++ b/content/posts/home-server-part-1/aliexpress_minipc.png diff --git a/static/files/do-june-billing.png b/content/posts/home-server-part-1/do-june-billing.png Binary files differindex a38f71c..a38f71c 100644 --- a/static/files/do-june-billing.png +++ b/content/posts/home-server-part-1/do-june-billing.png diff --git a/content/posts/home-server-part-1.md b/content/posts/home-server-part-1/index.md index 28bfbb4..6d859cc 100644 --- a/content/posts/home-server-part-1.md +++ b/content/posts/home-server-part-1/index.md @@ -11,7 +11,7 @@ This is the first post in a blog series chronicling my progress with designing a {{ toc() }} -{{ fig(src="/files/aliexpress_minipc.png", alt="A promotional image portraying the mini-PC I ended up getting") }} +{{ fig(src="aliexpress_minipc.png", alt="A promotional image portraying the mini-PC I ended up getting") }} ## I need a place to run code and store files @@ -21,13 +21,13 @@ I also need to store files somewhere, like everyone that partakes in the modern I have a trusty Ubuntu server, chugging away in some rack in a DigitalOcean datacenter in Amsterdam. Even though DigitalOcean pricing is pretty reasonable for individuals in general, my monthly price tag is around ~35€, after taxes. That sum is based on the cost of running a medium sized x86-64 instance and storing some backup snapshots from that machine. Times twelve, that comes to around 420€ per year. To me, that is a sizeable amount of money. -{{ fig(src="/files/do-june-billing.png", alt="DigitalOcean is charging $36.14 this month") }} +{{ fig(src="do-june-billing.png", alt="DigitalOcean is charging $36.14 this month") }} > 🤔 I would like to run a smaller instance, but I needed a certain level of RAM to reliably run Obsidian Sync. For whatever reason, less memory would have the app crash intermittently. Having upgraded to instance to the current size, it is hard to downscale back to a smaller machine. It is possible, of course. But instead of doing that, I started to consider an alternative: maybe I could save some coins and get some hardware of my own, like in the prehistoric times, before cloud services became the de-facto way to run anything. With one year's cloud costs, I could surely get a capable small machine. -{{ fig(src="/files/old-man-yells-at-cloud.png", alt="Old man yells at Cloud (FFVII)") }} +{{ fig(src="old-man-yells-at-cloud.png", alt="Old man yells at Cloud (FFVII)") }} ## Ownership and control @@ -43,7 +43,7 @@ I could provide these capabilities to myself, by managing my own hardware and ne To replace something as generally trusted and widely used as Google Drive requires some proper thinking. I haven't previously set up any redundant disk storage. My systems have never followed the [3-2-1 backup rule](https://en.wikipedia.org/wiki/Backup#3-2-1_Backup_Rule). -{{ fig(src="/files/3-2-1-Backup-Rule.png", alt="Maintain at least 3 copies of your data, keep 2 copies stored at separate locations, store at least 1 copy at an off-site location. Source: msp360.com") }} +{{ fig(src="3-2-1-Backup-Rule.png", alt="Maintain at least 3 copies of your data, keep 2 copies stored at separate locations, store at least 1 copy at an off-site location. Source: msp360.com") }} Reaching for full ownership and control is not solely an objective aim. It is in part psychological, an attempt to get back control in a world of weakening privacy and walled content gardens. It is driven by emotion. And this is completely fine: humans are allowed to be motivated by emotion, especially when it comes to personal, hobby-adjacent things. To claim otherwise would be dishonest. diff --git a/static/files/old-man-yells-at-cloud.png b/content/posts/home-server-part-1/old-man-yells-at-cloud.png Binary files differindex bf6a0f3..bf6a0f3 100644 --- a/static/files/old-man-yells-at-cloud.png +++ b/content/posts/home-server-part-1/old-man-yells-at-cloud.png diff --git a/content/posts/home-server-part-2/aliexpress_minipc.png b/content/posts/home-server-part-2/aliexpress_minipc.png Binary files differnew file mode 100644 index 0000000..0cb57a4 --- /dev/null +++ b/content/posts/home-server-part-2/aliexpress_minipc.png diff --git a/static/files/aliexpress_minipc_results.png b/content/posts/home-server-part-2/aliexpress_minipc_results.png Binary files differindex 9242e3e..9242e3e 100644 --- a/static/files/aliexpress_minipc_results.png +++ b/content/posts/home-server-part-2/aliexpress_minipc_results.png diff --git a/content/posts/home-server-part-2.md b/content/posts/home-server-part-2/index.md index 3030d62..7cd5300 100644 --- a/content/posts/home-server-part-2.md +++ b/content/posts/home-server-part-2/index.md @@ -58,7 +58,7 @@ Turns out that there simply aren't any reasonably priced machines based on chips AliExpress, an online retailer based in China, is nice since they have a huge variety of devices at prices that would never be profitable if sold in a western shop. I would prefer to buy European in this current political atmosphere, but I'm working off a budget, and limiting my options to reputable and ethical vendors would force me to relax my requirements a lot or stop the project in its tracks altogether. -{{ fig(src="/files/aliexpress_minipc_results.png", alt='Some of the results of a "mini pc" search query') }} +{{ fig(src="aliexpress_minipc_results.png", alt='Some of the results of a "mini pc" search query') }} I'm happy to notice that there is a varied selection of devices at the ~200€ price point. Some are designed to be network devices, with a bunch of physical interfaces and limited storage options, while some are clearly NAS oriented, with SATA 3.5" drive bays capable of housing two or four disks, most commonly. @@ -68,7 +68,7 @@ I'm looking for something in the middle ground: I need two physical interfaces ( > AliExpress tends to have multiple layers of ‼️ LIMITED SALE ‼️ and 🤑 TOP DEAL COUPON 🤑 going on at the same time. In the mobile app they also have a bunch of connect-four-type games that can score you big AliExpress Coins©. Please continue consuming. -{{ fig(src="/files/aliexpress_minipc.png", alt="A promotional image of the mini PC I picked, hosted here in case the product page goes poof. Please enjoy the broken English.") }} +{{ fig(src="aliexpress_minipc.png", alt="A promotional image of the mini PC I picked, hosted here in case the product page goes poof. Please enjoy the broken English.") }} Regarding disks, I think I want to buy them locally, just in case there are issues with them. It's way less stressful to handle returns and such with a local vendor than with an overseas megacorp. I feel that stuff like RAM is pretty often OK even if bought from less reputable sources, but with disks I don't want to test my luck. diff --git a/content/posts/home-server-part-3.md b/content/posts/home-server-part-3/index.md index 456ee2a..0b553ba 100644 --- a/content/posts/home-server-part-3.md +++ b/content/posts/home-server-part-3/index.md @@ -31,13 +31,13 @@ The initial idea is this: Using the install wizard, I set up the system following my rough plan. And here we go, all up and running: -{{ fig(src="/files/pursotin_fastfetch.png", alt="Fastfetch output showing the machine specs. Disregard the uptime (I took the screenshot way later)") }} +{{ fig(src="pursotin_fastfetch.png", alt="Fastfetch output showing the machine specs. Disregard the uptime (I took the screenshot way later)") }} ### RAIDZ You might notice that I bought 4 x 1 TB of NVMe disks, but `fastfetch` is only showing ~2TB. That's because I set up the disks into a "RAID 1+0" configuration: -{{ fig(src="/files/pursotin_raidz.svg", alt='A "RAID 1+0" configuration') }} +{{ fig(src="pursotin_raidz.svg", alt='A "RAID 1+0" configuration') }} RAID 1+0 is a combination of two RAID levels. RAID 1, or _mirror_, consumes two disks to produce one virtual disk that has the capacity of only one physical disk but can withstand the loss of either one. ZFS can automatically heal missing data in a member of a mirror by copying it over from the healthy member. RAID 0, or _stripe_, consumes two disks to produce a disk that has the capacity of the sum of its member capacities as well as double I/O speed, but fails if either member disk fails. The combination of these is a useful way to get increased speed and increased durability at the price of half your raw capacity. diff --git a/static/files/pursotin_fastfetch.png b/content/posts/home-server-part-3/pursotin_fastfetch.png Binary files differindex 241f5e9..241f5e9 100644 --- a/static/files/pursotin_fastfetch.png +++ b/content/posts/home-server-part-3/pursotin_fastfetch.png diff --git a/static/files/pursotin_raidz.svg b/content/posts/home-server-part-3/pursotin_raidz.svg index d2942ac..d2942ac 100644 --- a/static/files/pursotin_raidz.svg +++ b/content/posts/home-server-part-3/pursotin_raidz.svg diff --git a/content/posts/home-server-part-4.md b/content/posts/home-server-part-4/index.md index 1eff36f..bb44702 100644 --- a/content/posts/home-server-part-4.md +++ b/content/posts/home-server-part-4/index.md @@ -1,13 +1,13 @@ --- -title: "A home server journey, part 4: Network" -date: 2025-12-25 +title: "A home server journey, part 4: Networking" +date: 2025-12-24 description: | - This is the fourth episode in a series where I set up a FreeBSD home server, explaining all the steps, problems and solutions along the way. This time we're setting up the networking. + This is the fourth episode in a series where I set up a FreeBSD home server, explaining all the steps, problems and solutions along the way. This time we're looking at networking. extra: kind: note --- -This is the fourth episode in a series where I set up a FreeBSD home server, explaining all the steps, problems and solutions along the way. This time we're setting up the networking. +This is the fourth episode in a series where I set up a FreeBSD home server, explaining all the steps, problems and solutions along the way. This time we're looking at networking. Check out episodes [1](/posts/home-server-part-1), [2](/posts/home-server-part-2), [3](/posts/home-server-part-3). @@ -19,7 +19,7 @@ I already have a private network (`192.168.0.0/16`) that uses my pfSense router The host will also be connected directly to the ISP's network using its second interface (`wan0`). This interface will get its IP using DHCP. Packets to the internet, as well as packets to public services running on the FreeBSD host go through this interface. -{{ fig(src="/files/pursotin_network.svg", alt="A simplified diagram showing the two interfaces") }} +{{ fig(src="pursotin_network.svg", alt="A simplified diagram showing the two interfaces") }} A dual interface set up like this is simple in theory, but there are important nuances, e.g. regarding return traffic routing and DNS. diff --git a/static/files/pursotin_network.svg b/content/posts/home-server-part-4/pursotin_network.svg index 79d1dea..79d1dea 100644 --- a/static/files/pursotin_network.svg +++ b/content/posts/home-server-part-4/pursotin_network.svg diff --git a/content/posts/it-doesnt-mean-that.md b/content/posts/it-doesnt-mean-that/index.md index adf171f..0fb2988 100644 --- a/content/posts/it-doesnt-mean-that.md +++ b/content/posts/it-doesnt-mean-that/index.md @@ -1,11 +1,9 @@ --- title: It doesn't mean that -date: 2024-03-31 -extra: - kind: note +date: 2024-05-16 --- -<img src="/files/wikimedia_monad.svg" alt="A plain circle with a small dot in the center" style="max-height: 200px; margin-bottom: 0px" /> +<img src="wikimedia_monad.svg" alt="A plain circle with a small dot in the center" style="max-height: 200px; margin-bottom: 0px" /> ## When I learned my first programming language diff --git a/static/files/wikimedia_monad.svg b/content/posts/it-doesnt-mean-that/wikimedia_monad.svg index 887c3c6..887c3c6 100644 --- a/static/files/wikimedia_monad.svg +++ b/content/posts/it-doesnt-mean-that/wikimedia_monad.svg diff --git a/static/files/diffuser_1.jpg b/content/posts/now-2024-fall/diffuser_1.jpg Binary files differindex d5e6693..d5e6693 100644 --- a/static/files/diffuser_1.jpg +++ b/content/posts/now-2024-fall/diffuser_1.jpg diff --git a/static/files/diffuser_2.jpg b/content/posts/now-2024-fall/diffuser_2.jpg Binary files differindex f8c8b84..f8c8b84 100644 --- a/static/files/diffuser_2.jpg +++ b/content/posts/now-2024-fall/diffuser_2.jpg diff --git a/static/files/diffuser_3.jpg b/content/posts/now-2024-fall/diffuser_3.jpg Binary files differindex 5efa8ab..5efa8ab 100644 --- a/static/files/diffuser_3.jpg +++ b/content/posts/now-2024-fall/diffuser_3.jpg diff --git a/content/posts/now-2024-fall.md b/content/posts/now-2024-fall/index.md index b71de95..1946eda 100644 --- a/content/posts/now-2024-fall.md +++ b/content/posts/now-2024-fall/index.md @@ -35,9 +35,9 @@ extra: } </style> <p class="gallery"> -<a href="/files/diffuser_1.jpg"><img src="/files/diffuser_1.jpg" alt="Sawed and varnished wooden pegs waiting for assembly."></a> -<a href="/files/diffuser_2.jpg"><img src="/files/diffuser_2.jpg" alt="A plywood board with a single row and column of pegs assembled on top."></a> -<a href="/files/diffuser_3.jpg"><img src="/files/diffuser_3.jpg" alt="A complete sound diffuser, comprising a sizeable grid of differently angled pegs."></a> +<a href="diffuser_1.jpg"><img src="diffuser_1.jpg" alt="Sawed and varnished wooden pegs waiting for assembly."></a> +<a href="diffuser_2.jpg"><img src="diffuser_2.jpg" alt="A plywood board with a single row and column of pegs assembled on top."></a> +<a href="diffuser_3.jpg"><img src="diffuser_3.jpg" alt="A complete sound diffuser, comprising a sizeable grid of differently angled pegs."></a> <label>The sound diffuser being built.</label> </p> diff --git a/content/posts/now-2024-spring.md b/content/posts/now-2024-spring/index.md index aa1fe1f..ad10fe5 100644 --- a/content/posts/now-2024-spring.md +++ b/content/posts/now-2024-spring/index.md @@ -9,7 +9,7 @@ extra: Inches of snow are falling on the yard, covering any new green growths. The dog likes it, I don't. <video width="100%" controls> - <source src="/files/jojo-in-snow.webm" type="video/webm"> + <source src="jojo-in-snow.webm" type="video/webm"> Your browser does not support the video tag. </video> diff --git a/static/files/jojo-in-snow.webm b/content/posts/now-2024-spring/jojo-in-snow.webm Binary files differindex 19047e5..19047e5 100644 --- a/static/files/jojo-in-snow.webm +++ b/content/posts/now-2024-spring/jojo-in-snow.webm diff --git a/static/files/2024-wines.jpg b/content/posts/now-2024-summer/2024-wines.jpg Binary files differindex 81cddef..81cddef 100644 --- a/static/files/2024-wines.jpg +++ b/content/posts/now-2024-summer/2024-wines.jpg diff --git a/static/files/aws-exam-drink.jpeg b/content/posts/now-2024-summer/aws-exam-drink.jpeg Binary files differindex 16f8933..16f8933 100644 --- a/static/files/aws-exam-drink.jpeg +++ b/content/posts/now-2024-summer/aws-exam-drink.jpeg diff --git a/content/posts/now-2024-summer.md b/content/posts/now-2024-summer/index.md index cc7bb74..d716e4a 100644 --- a/content/posts/now-2024-summer.md +++ b/content/posts/now-2024-summer/index.md @@ -16,13 +16,13 @@ extra: - Started learning about wines. Organized a wine tasting. My top pick: Domaine Laroche Chablis 1er Cru Les Vaudevey 2022. -{{ fig(src="/files/2024-wines.jpg", alt="Wines from the tasting") }} +{{ fig(src="2024-wines.jpg", alt="Wines from the tasting") }} ### Career - I passed the **AWS Certified Developer Associate** certificate exam! A celebratory espresso martini was in order. Planning to do **Solutions Architect Associate** next. -{{ fig(src="/files/aws-exam-drink.jpeg", alt="My hand holding an espresso martini outside in sunny weather") }} +{{ fig(src="aws-exam-drink.jpeg", alt="My hand holding an espresso martini outside in sunny weather") }} ## Played games diff --git a/content/posts/now-2025-fall.md b/content/posts/now-2025-fall/index.md index fe0d1f2..0c21cd6 100644 --- a/content/posts/now-2025-fall.md +++ b/content/posts/now-2025-fall/index.md @@ -20,11 +20,11 @@ We've also been planning the wedding that's taking place in 2026. In many ways I A lot of renovations this summer. One of the biggest ones was the translucent roofing installation: -{{ fig(src="/files/valokate_1.jpg", alt="Installing the sunroof") }} +{{ fig(src="valokate_1.jpg", alt="Installing the sunroof") }} After around six hours (including breaks), it's all done! Just in time for rain. -{{ fig(src="/files/valokate_2.jpg", alt="Complete sunroof") }} +{{ fig(src="valokate_2.jpg", alt="Complete sunroof") }} You can see the gnarly reddish wall in the picture. That and a bunch of other grime and residue was cleaned off as part of a neighborhood exterior painting project. The place is looking a lot nicer now from the outside (no pictures of this I'm afraid). @@ -73,7 +73,7 @@ I late August I went on a company trip to Krakow, Poland for one weekend. A nice In September we had booked a trip to Italy with a group of friends. We stayed in Rome for a couple of days, enjoying the 30C heat and sights such as the Villa Borghese. We had already visited the Colosseum and the Vatican on earlier trips so we decided to avoid the queues and visit less popular places. It was the Jubileum year so many sights were jam-packed. After that we got a rental and drove ~500km south to Calabria, where we spent the next week at a really nice villa overlooking the sea. -{{ fig(src="/files/villa.jpeg", alt="The view from the villa") }} +{{ fig(src="villa.jpeg", alt="The view from the villa") }} Later in September I attended EuroBSDCon 2025 in Zagreb, Croatia. A lot of great talks and lab sessions! I might write a conference notes post about the trip. diff --git a/static/files/valokate_1.jpg b/content/posts/now-2025-fall/valokate_1.jpg Binary files differindex 1ddccf2..1ddccf2 100644 --- a/static/files/valokate_1.jpg +++ b/content/posts/now-2025-fall/valokate_1.jpg diff --git a/static/files/valokate_2.jpg b/content/posts/now-2025-fall/valokate_2.jpg Binary files differindex 3d66088..3d66088 100644 --- a/static/files/valokate_2.jpg +++ b/content/posts/now-2025-fall/valokate_2.jpg diff --git a/static/files/villa.jpeg b/content/posts/now-2025-fall/villa.jpeg Binary files differindex 51cc84b..51cc84b 100644 --- a/static/files/villa.jpeg +++ b/content/posts/now-2025-fall/villa.jpeg diff --git a/content/posts/now-2025-summer.md b/content/posts/now-2025-summer/index.md index 81293ca..d3bbaa5 100644 --- a/content/posts/now-2025-summer.md +++ b/content/posts/now-2025-summer/index.md @@ -7,7 +7,7 @@ extra: kind: now --- -{{ fig(src="/files/kenrokuen.jpg", alt="A torii gate in the Kenroku-en garden") }} +{{ fig(src="kenrokuen.jpg", alt="A torii gate in the Kenroku-en garden") }} Here's three seasons of updates in one package. @@ -41,7 +41,7 @@ Me and my fiancée made a long-awaited trip to Japan in the spring. We landed in We traveled the central island, Honshū, for three weeks. Mostly by train, but also by bus. We visited Ōsaka, Nara, Kyōto, Gifu-Takayama, Kanazawa and finally Tōkyō. This route skips the popular south-coast bullet train connection, instead going north through the mountains. -{{ fig(src="/files/samurai_garden.jpeg", alt="The garden of a preserved samurai family home, with a koi fish pond and stone lantern") }} +{{ fig(src="samurai_garden.jpeg", alt="The garden of a preserved samurai family home, with a koi fish pond and stone lantern") }} I got to finally test my Japanese. Speaking was very laborious at first, but it got way easier the more I got to practise. My vocabulary didn't improve that much, but what improved were things like _cadence_, _[aizuchi](https://en.wikipedia.org/wiki/Aizuchi)_, and ability to respond with more natural word choices. Big up to active listening and copying native speakers. @@ -49,7 +49,7 @@ We ate and drank well. We mostly gravitated towards traditional-style, or _washo Something to note: pickled veggies go great with meat-centered, hearty meals. We were eager to implement this in our home cooking as soon as we got home. -{{ fig(src="/files/wagyu_grill.jpeg", alt="Wagyu beef, mushroom and peppers on a tabletop charcoal grill") }} +{{ fig(src="wagyu_grill.jpeg", alt="Wagyu beef, mushroom and peppers on a tabletop charcoal grill") }} We visited the obligatory tourist spots, like the _Thousand torī gates_ in Kyōto, and the _Dōtonbori shopping street_ in Ōsaka. We like seeing sights, but we know that our most memorable experiences have always come naturally from exploration and keeping an open mind. That's why we spent only a fraction of our time visiting Tripadvisor locations and most of the time wandering around, following local recommendations and keeping our eyes, ears and nostrils peeled. diff --git a/static/files/kenrokuen.jpg b/content/posts/now-2025-summer/kenrokuen.jpg Binary files differindex f739d82..f739d82 100644 --- a/static/files/kenrokuen.jpg +++ b/content/posts/now-2025-summer/kenrokuen.jpg diff --git a/static/files/samurai_garden.jpeg b/content/posts/now-2025-summer/samurai_garden.jpeg Binary files differindex f6637b0..f6637b0 100644 --- a/static/files/samurai_garden.jpeg +++ b/content/posts/now-2025-summer/samurai_garden.jpeg diff --git a/static/files/wagyu_grill.jpeg b/content/posts/now-2025-summer/wagyu_grill.jpeg Binary files differindex 0e835bc..0e835bc 100644 --- a/static/files/wagyu_grill.jpeg +++ b/content/posts/now-2025-summer/wagyu_grill.jpeg diff --git a/static/files/2025_wrapped_genres.jpeg b/content/posts/now-2025-winter/2025_wrapped_genres.jpeg Binary files differindex 630be8a..630be8a 100644 --- a/static/files/2025_wrapped_genres.jpeg +++ b/content/posts/now-2025-winter/2025_wrapped_genres.jpeg diff --git a/static/files/backdoor_feature_done.jpeg b/content/posts/now-2025-winter/backdoor_feature_done.jpeg Binary files differindex a9c71d5..a9c71d5 100644 --- a/static/files/backdoor_feature_done.jpeg +++ b/content/posts/now-2025-winter/backdoor_feature_done.jpeg diff --git a/static/files/backdoor_feature_wip.jpeg b/content/posts/now-2025-winter/backdoor_feature_wip.jpeg Binary files differindex 2f381d1..2f381d1 100644 --- a/static/files/backdoor_feature_wip.jpeg +++ b/content/posts/now-2025-winter/backdoor_feature_wip.jpeg diff --git a/static/files/dopamine_office.jpeg b/content/posts/now-2025-winter/dopamine_office.jpeg Binary files differindex aad4e65..aad4e65 100644 --- a/static/files/dopamine_office.jpeg +++ b/content/posts/now-2025-winter/dopamine_office.jpeg diff --git a/content/posts/now-2025-winter.md b/content/posts/now-2025-winter/index.md index 0462760..2fae6f8 100644 --- a/content/posts/now-2025-winter.md +++ b/content/posts/now-2025-winter/index.md @@ -64,7 +64,7 @@ In fact, it might be possible to design this in a way that completely does away Office room number one is now pretty much complete. We tried to combine some of pastel colors and fun patterns, while keeping it smart and tidy. -{{ fig(src="/files/dopamine_office.jpeg", alt="The dopamine office") }} +{{ fig(src="dopamine_office.jpeg", alt="The dopamine office") }} ### Backdoor clothes rack and wall feature @@ -74,17 +74,17 @@ Until now, there has been nowhere to really hang our outdoor clothes nicely. The So we got the idea to repurpose the empty space in the corner, adding some visual interest with acoustic paneling as well as utility with some colorful "knobs" that you can hang coats and scarves on. -{{ fig(src="/files/backdoor_feature_wip.jpeg", alt="Install in progress") }} +{{ fig(src="backdoor_feature_wip.jpeg", alt="Install in progress") }} And the final product (in completely different lighting): -{{ fig(src="/files/backdoor_feature_done.jpeg", alt="An installed wood paneling with some coats hanging off of colored knobs") }} +{{ fig(src="backdoor_feature_done.jpeg", alt="An installed wood paneling with some coats hanging off of colored knobs") }} The white box is an IKEA shoebox. We keep some dog gear in there. ### Cool dog print -{{ fig(src="/files/taulu_koira.jpeg", alt="Cool dog") }} +{{ fig(src="taulu_koira.jpeg", alt="Cool dog") }} ## Games @@ -116,13 +116,13 @@ The white box is an IKEA shoebox. We keep some dog gear in there. Mostly [Moomin music](https://youtu.be/Bf1pR4rkPK8). I went to see the _Muumimusiikkia_ show in Musiikkitalo (Helsinki) in November, and after that I haven't been able to get Shiratori's melodies out of my head. This is a positive problem. -{{ fig(src="/files/muumimusiikkia.jpeg", alt="A photo from our seats at Musiikkitalo, showing the brochure") }} +{{ fig(src="muumimusiikkia.jpeg", alt="A photo from our seats at Musiikkitalo, showing the brochure") }} ### Spotify Wrapped I feel like I'm using Spotify less and less. Might drop the subscription in the near future. I really don't like the policies they are driving. -{{ fig(src="/files/2025_wrapped_genres.jpeg", alt="My top genres, all over the place") }} +{{ fig(src="2025_wrapped_genres.jpeg", alt="My top genres, all over the place") }} ## Previous update diff --git a/static/files/muumimusiikkia.jpeg b/content/posts/now-2025-winter/muumimusiikkia.jpeg Binary files differindex a99d8f6..a99d8f6 100644 --- a/static/files/muumimusiikkia.jpeg +++ b/content/posts/now-2025-winter/muumimusiikkia.jpeg diff --git a/static/files/taulu_koira.jpeg b/content/posts/now-2025-winter/taulu_koira.jpeg Binary files differindex 11c4f32..11c4f32 100644 --- a/static/files/taulu_koira.jpeg +++ b/content/posts/now-2025-winter/taulu_koira.jpeg diff --git a/static/files/fish-and-chips-duke-of-argyll.jpg b/content/posts/qcon-london-2024-takeaways/fish-and-chips-duke-of-argyll.jpg Binary files differindex a9fefc8..a9fefc8 100644 --- a/static/files/fish-and-chips-duke-of-argyll.jpg +++ b/content/posts/qcon-london-2024-takeaways/fish-and-chips-duke-of-argyll.jpg diff --git a/content/posts/qcon-london-2024-takeaways.md b/content/posts/qcon-london-2024-takeaways/index.md index 17d8b3b..4c644e7 100644 --- a/content/posts/qcon-london-2024-takeaways.md +++ b/content/posts/qcon-london-2024-takeaways/index.md @@ -9,7 +9,7 @@ QCon London 2024 was a multidisciplinary software engineering conference in the This was also my first time in the UK so I had to do some touristing. The weather was a bit chilly, half-cloudy with some intermittent drizzle. -{{ fig(src="/files/london-from-above.jpg", alt="London from above in the late evening") }} +{{ fig(src="london-from-above.jpg", alt="London from above in the late evening") }} ## Common themes @@ -109,4 +109,4 @@ Nothing mindblowing, just good ale and a comfy vibe. A good place to sit out the I had to eat fish & chips at least once just to check it off my bucket list. I don't know if theirs is the best or even proper, but I enjoyed it a lot. -{{ fig(src="/files/fish-and-chips-duke-of-argyll.jpg", alt="Fish and chips at the Duke of Argyll") }} +{{ fig(src="fish-and-chips-duke-of-argyll.jpg", alt="Fish and chips at the Duke of Argyll") }} diff --git a/static/files/london-from-above.jpg b/content/posts/qcon-london-2024-takeaways/london-from-above.jpg Binary files differindex a7762ed..a7762ed 100644 --- a/static/files/london-from-above.jpg +++ b/content/posts/qcon-london-2024-takeaways/london-from-above.jpg diff --git a/static/files/hinokodo-static-abyss.png b/content/posts/subjective-review-miru/hinokodo-static-abyss.png Binary files differindex edfac67..edfac67 100644 --- a/static/files/hinokodo-static-abyss.png +++ b/content/posts/subjective-review-miru/hinokodo-static-abyss.png diff --git a/content/posts/subjective-review-miru.md b/content/posts/subjective-review-miru/index.md index d728a45..59ec7e4 100644 --- a/content/posts/subjective-review-miru.md +++ b/content/posts/subjective-review-miru/index.md @@ -5,7 +5,7 @@ extra: kind: note --- -{{ fig(src="/files/miru_time_to_kill_triple.jpg", alt="A graphic from the first pages of the Miru zine with the text ”Time to kill a god” overlaid on an imposing four-eyed figure.") }} +{{ fig(src="miru_time_to_kill_triple.jpg", alt="A graphic from the first pages of the Miru zine with the text ”Time to kill a god” overlaid on an imposing four-eyed figure.") }} ## TL;DR @@ -31,7 +31,7 @@ With definitions out of the way, let me start by saying that _Miru is the best s ## First look -{{ fig(src="/files/miru_gameplay.jpeg", alt="The Miru zine, polyhedral dice, various stationery and other items strewn across a dining table.") }} +{{ fig(src="miru_gameplay.jpeg", alt="The Miru zine, polyhedral dice, various stationery and other items strewn across a dining table.") }} Miru paints a picture of a dystopian, post-metropolitan society future where humans begrudgingly coexist with humanoid and animal-like robots. The story is kicked off in a scene where a farm worker robot kills a relative of the main character in an act of self defense when it evaluates their drunken hooliganism to be a threat. Stricken, the main character vows revenge and sets off to find out the truth about the machines’ origins. @@ -69,5 +69,5 @@ With that in mind, the designer has released an official soundtrack called [Stat The concept of a soundtrack for a physical game is badass. I own one physical release of such a thing, the Mörk Borg adventure [Putrescence Regnant](https://jnohr.itch.io/putrescence-regnant), which takes the form of a highly stylized LP disc and sleeve. Very cool. -{{ fig(src="/files/hinokodo-static-abyss.png", alt="A photo of the Static Abyss minidisk in its enclosure") }} +{{ fig(src="hinokodo-static-abyss.png", alt="A photo of the Static Abyss minidisk in its enclosure") }} Photo attribution: [Hinokodo](https://hinokodo.itch.io/static-abyss) diff --git a/static/files/miru_gameplay.jpeg b/content/posts/subjective-review-miru/miru_gameplay.jpeg Binary files differindex 51d8d44..51d8d44 100644 --- a/static/files/miru_gameplay.jpeg +++ b/content/posts/subjective-review-miru/miru_gameplay.jpeg diff --git a/static/files/miru_time_to_kill_triple.jpg b/content/posts/subjective-review-miru/miru_time_to_kill_triple.jpg Binary files differindex 97be7fe..97be7fe 100644 --- a/static/files/miru_time_to_kill_triple.jpg +++ b/content/posts/subjective-review-miru/miru_time_to_kill_triple.jpg diff --git a/content/posts/theres-an-rss-feed-now.md b/content/posts/theres-an-rss-feed-now/index.md index 8ec5448..e52db1a 100644 --- a/content/posts/theres-an-rss-feed-now.md +++ b/content/posts/theres-an-rss-feed-now/index.md @@ -7,4 +7,4 @@ extra: As part of the site build process, I use [`pandoc-rss`](https://github.com/chambln/pandoc-rss) to automatically build an RSS feed of my posts. - + diff --git a/static/files/internet_surf.png b/content/posts/theres-an-rss-feed-now/internet_surf.png Binary files differindex 7787770..7787770 100644 --- a/static/files/internet_surf.png +++ b/content/posts/theres-an-rss-feed-now/internet_surf.png diff --git a/content/posts/unfold.md b/content/posts/unfold/index.md index 241703a..8ab3b89 100644 --- a/content/posts/unfold.md +++ b/content/posts/unfold/index.md @@ -12,7 +12,7 @@ extra: I recently presented a lightning talk about the IndieWeb and personal websites to my colleagues at the office. Even though I don't normally enjoy presenting, speaking about things I'm passionate about always turns out to be rather easy. The talk and the presentation that I used to support the talk were well received. </p> -{{ fig(src="/files/indieweb_presentation.png", alt="A slide from the PowerPoint presentation") }} +{{ fig(src="indieweb_presentation.png", alt="A slide from the PowerPoint presentation") }} --- @@ -25,7 +25,7 @@ Later, when I shared my PowerPoint slides in the IndieWeb chat, I was asked if I So curious in fact, that I decided to study up on the ”HTML slideshow landscape”: what kind of tools there are, how do they work on a static site, things like that. Turns out that a tool called `reveal.js` is very popular and often recommended. An idea entered my mind: what if I could turn an HTML note (like this one that you’re reading) into an HTML slideshow, in a somewhat automated fashion? </p> -{{ fig(src="/files/reveal-js-logo.png", alt="Reveal.js logo") }} +{{ fig(src="reveal-js-logo.png", alt="Reveal.js logo") }} --- diff --git a/static/files/indieweb_presentation.png b/content/posts/unfold/indieweb_presentation.png Binary files differindex e9d0096..e9d0096 100644 --- a/static/files/indieweb_presentation.png +++ b/content/posts/unfold/indieweb_presentation.png diff --git a/static/files/reveal-js-logo.png b/content/posts/unfold/reveal-js-logo.png Binary files differindex f7b671f..f7b671f 100644 --- a/static/files/reveal-js-logo.png +++ b/content/posts/unfold/reveal-js-logo.png diff --git a/content/projects/_index.md b/content/projects/_index.md index 22f6291..592c762 100644 --- a/content/projects/_index.md +++ b/content/projects/_index.md @@ -7,7 +7,7 @@ insert_anchor_links: none # My projects -### [ATK16](atk16) +### [ATK16](atk16/) A 16-bit computer and ecosystem project with a custom ISA and toolchain. @@ -15,7 +15,7 @@ A 16-bit computer and ecosystem project with a custom ISA and toolchain. A dungeon synth / dark ambient duo project with Juuso. -### [Cookbook](cookbook) +### [Cookbook](cookbook/) An online cookbook of recipes I have prepared and enjoyed. Useful for me mostly. @@ -23,10 +23,10 @@ An online cookbook of recipes I have prepared and enjoyed. Useful for me mostly. A CLI tool for communicating with a [Desmofylakas API](https://github.com/poksiala/desmo-api). A kind of a half-humorous attempt at creating something that is like a small Kubernetes but for BSD jails. -### [Diddle](diddle) +### [Diddle](diddle/) A minimalist, performant, accessibility-focused Doodle alternative. See [post](/posts/diddle-event-scheduler). -### [Learning Japanese](learning-japanese) +### [Learning Japanese](learning-japanese/) I have been self-studying Japanese on and off since I was 13. diff --git a/static/files/atk16-block-diagram.svg b/content/projects/atk16/block-diagram.svg index 138d7a1..138d7a1 100644 --- a/static/files/atk16-block-diagram.svg +++ b/content/projects/atk16/block-diagram.svg diff --git a/content/projects/ATK16.md b/content/projects/atk16/index.md index 204220d..4219b95 100644 --- a/content/projects/ATK16.md +++ b/content/projects/atk16/index.md @@ -54,7 +54,7 @@ extra: - a software emulator for running the built software on your development machine - a register transfer logic (RTL) model designed in [Digital](https://github.com/hneemann/Digital) capable of running the built software -{{ fig(src="/files/atk16-block-diagram.svg", alt="ATK16 block diagram") }} +{{ fig(src="block-diagram.svg", alt="ATK16 block diagram") }} The idea for the project hatched from my admiration for [Ben Eater](https://eater.net/) and his DIY CPU and video card projects. I was enamoured by the elegance of his systems and simply wanted to do something similar. I had none of the required knowledge for this kind of low-level CPU design work, but I had studied digital electronics for a bit in university. @@ -291,7 +291,7 @@ On startup, the _graphics mode_ memory register is set to disabled (0). To activ The TPU is a graphics processor that produces a 40 x 30 character VGA output signal. -{{ fig(src="/files/atk16-text-mode.png", alt="A screenshot of a text mode program displaying a work-in-progress hardware monitor") }} +{{ fig(src="text-mode.png", alt="A screenshot of a text mode program displaying a work-in-progress hardware monitor") }} The TPU has 3 major components: - The character memory (ROM) diff --git a/content/projects/atk16/text-mode.png b/content/projects/atk16/text-mode.png Binary files differnew file mode 100644 index 0000000..93c2752 --- /dev/null +++ b/content/projects/atk16/text-mode.png diff --git a/content/projects/diddle/diddle_screenshot.png b/content/projects/diddle/diddle_screenshot.png Binary files differnew file mode 100644 index 0000000..437567e --- /dev/null +++ b/content/projects/diddle/diddle_screenshot.png diff --git a/content/projects/diddle.md b/content/projects/diddle/index.md index 1fab603..7b51de5 100644 --- a/content/projects/diddle.md +++ b/content/projects/diddle/index.md @@ -13,7 +13,7 @@ Diddle ([live instance](https://diddle.jan.systems/), [Github](https://github.co > **Note**: The instance hosted on my domain might go down any second. Use it at your own discretion. -{{ fig(src="/files/diddle_screenshot.png", alt="Diddle screenshot showing an answerable poll") }} +{{ fig(src="diddle_screenshot.png", alt="Diddle screenshot showing an answerable poll") }} The first 80% of the project was done in two evenings. The last 80% was done during the next week. The tech stack is the _get-shit-done_ stack: **Python** + **Flask** + **PostgreSQL**. There is no required client side javascript: all client side logic is strictly for [progressive enhancement](https://developer.mozilla.org/en-US/docs/Glossary/Progressive_Enhancement). You can use "dumb" browsers like w3m or lynx to enjoy Diddle just fine. |
