1
Fork 0

the flattening

not to be confused with the Minecraft technical update

I'm moving about the pages to be have a more flat, less nested structure.
I feel like that'll improve URLs a lot, making them more readable than ever.

over the years I've learned that flatter is better, and that tagging is generally a much more effective way of organising things.
this doesn't get rid of categories entirely, as I think having the category makes the URL much a bit more readable in the end.
my current vision does include a concept of "major categories" either way.
This commit is contained in:
リキ萌 2025-01-14 23:36:09 +01:00
parent 20e29e3b2c
commit 39a6155bdc
33 changed files with 63 additions and 120 deletions

View file

@ -10,7 +10,7 @@
% id = "01J8YY31QJQJYW1TTYSHKB2AV1"
- :folder: *blog*
% content.link = "music/reviews/aphex-twin/blue-calx"
% content.link = "music/blue-calx"
id = "01JCY18RY6B6CTC3H8ME0FRZXC"
+ :page: Blue Calx
@ -19,26 +19,26 @@
+ :page: the curious case of Amon Tobin's Creatures
% id = "01J8ZKEPGF9HDMRK2ERNM23FE2"
content.link = "music/reviews/opn/i-dont-love-me-anymore"
content.link = "music/i-dont-love-me-anymore"
+ :page: I Don't Love Me Anymore
% id = "01J73BSW850Z2SDVM832FB60QT"
content.link = "music/brainz"
+ :page: the ListenBrainz dataset
% content.link = "music/reviews/telefon-tel-aviv/map-of-what-is-effortless"
% content.link = "music/map-of-what-is-effortless"
id = "01H9R1NKBBFTWT6FT2MVWHETR6"
+ :page: Telefon Tel Aviv - Map of What Is Effortless
% content.link = "music/reviews/radiohead/a-moon-shaped-pool"
% content.link = "music/a-moon-shaped-pool"
id = "01H9JB094CA55NT8QR1AYNXDBT"
+ :page: Radiohead - A Moon Shaped Pool
% content.link = "music/reviews/aphex-twin/syro"
% content.link = "music/syro"
id = "01H9DQNG9APD9BSDTP3N3QQFG3"
+ :page: Aphex Twin - Syro
% content.link = "music/reviews/radiohead/ok-computer"
% content.link = "music/ok-computer"
id = "01H969NN1ADGRWRQTT2NE5TJZ1"
+ :page: Radiohead - OK Computer

View file

@ -9,43 +9,43 @@
% id = "01HPD4XQQ5GPQ20C6BPA8G670F"
- :folder: *blog*
% content.link = "programming/blog/aoc"
% content.link = "programming/aoc"
id = "01JDZKMPHT02WJBF2TC5YBWGMB"
+ :page: Advent of Code feels
% content.link = "programming/blog/vfs"
% content.link = "programming/vfs"
id = "01JDJJHCGTAJ78K8WRXV00ZEJC"
+ :page: composable virtual file systems
% content.link = "programming/blog/cstring-starts-with"
% content.link = "programming/cstring-starts-with"
id = "01JCGAM56KS2C6D4XZ1MRATXH4"
+ :page: prefix matches with C strings
% content.link = "programming/blog/buildsome"
% content.link = "programming/buildsome"
id = "01J7BYKQHZKYQ969T3PH3V8HF1"
+ :page: not quite buildless
% content.link = "programming/blog/haku"
% content.link = "programming/haku"
id = "01J4J4PAXRWZDP9PAZNGCQ9S3D"
+ :page: haku - writing a little programming language for fun
% content.link = "programming/blog/lvalues"
% content.link = "programming/lvalues"
id = "01HY5R1ZW0M0Y5KQ1E8F0Q73ZT"
+ :page: places, or what is up with `*x` not always meaning the same thing
% content.link = "programming/blog/systems"
% content.link = "programming/systems"
id = "01J0PBKY1AAPGXG6NSRDTMV48F"
+ :page: systems are just a bunch of code
% content.link = "programming/blog/or-types"
% content.link = "programming/or-types"
id = "01HTWN4XB2YMF3615BE8V6Y76A"
+ :page: OR-types
% content.link = "programming/blog/tairu"
% content.link = "programming/tairu"
id = "01HPD4XQQ5WM0APCAX014HM43V"
+ :page: tairu - an interactive exploration of 2D autotiling techniques
% content.link = "about-treehouse"
% content.link = "programming/about-treehouse"
id = "01H89RFHCQ1YB7CXBBR6NDDAC1"
redirect_from = ["about-treehouse"]
+ :page: about the treehouse
@ -53,22 +53,22 @@
% id = "01HRG2RJCNKT9JJJVQ8WVRC9CA"
- :folder: *languages*
% content.link = "programming/languages/cxx"
% content.link = "programming/cxx"
id = "programming/languages/cxx"
+ :folder: C++
% content.link = "programming/languages/javascript"
% content.link = "programming/javascript"
id = "programming/languages/javascript"
+ :page: JavaScript
% content.link = "programming/languages/lua"
% content.link = "programming/lua"
id = "programming/languages/lua"
+ :page: Lua
% id = "01HRG2RJCN8J42NK0KWD3SBSJA"
- :folder: *technologies*
% content.link = "programming/technologies/unreal-engine"
% content.link = "programming/unreal-engine"
id = "programming/technologies/unreal-engine"
+ :folder: Unreal Engine

View file

@ -27,7 +27,7 @@
% id = "01H8VWEFHZA94G0DNPD79YV535"
+ …
% content.link = "about-treehouse/emoji"
% content.link = "treehouse/emoji"
id = "01H8VWEFHZ7Z71WJ347WFMC9YT"
+ by the way did you know this website has custom emojis? and quite a lot of them, too
@ -53,7 +53,7 @@
+ _where?_
% id = "01H89RFHCQW4NN6PW6V6RFCVH3"
content.link = "about-treehouse/the-end-is-never"
content.link = "the-end-is-never"
+ _*WHERE???*_
% id = "01H89RFHCQPAMNSN81SRVH2TZ5"

View file

@ -1,88 +0,0 @@
%% title = "derive me some Nix"
% id = "01J31356Q1A4Z54F3G7THB1C81"
- chances are you've heard about Nix or NixOS from somewhere and would like to learn more about it.
% id = "01J31356Q1AQE7ZBE2P7FG03G4"
- if that is the case, welcome to the club!
we're pretty much in the same bucket.
I literally just started using Nix a couple days ago, and I found the documentation *really* unclear.
so here's my shot at a more pedagogical approach.
% id = "01J31356Q1N80MYK77MP3BMJ1E"
- if that's not the case - Nix is a package manager and system configuration language.
basically, you specify how you want your system to look using config files stored in one place, and Nix _derives_ the system from that config file for you!
% id = "01J31356Q13VHG7EN0Q24A6GSM"
- I emphasized the word _derives_, because _derivation_ is the fundamental operation of Nix the package manager.
your entire config is specified declaratively, and the entire folder structure and all configuration files are _derived_ from that config.
but we'll get to that shortly.
% id = "01J31356Q1G1X5X9Q7BPDT41R5"
- people seem to be excited about Nix for many reasons.
I'm excited because it helps me achieve *online independence.*
% id = "01J31356Q12T9Z1WE300PD7J79"
- did you know that since last weekend (since this was written) this website runs on NixOS?
% id = "01J31356Q1KM0TT28D4PHZTAR9"
- being able to take your VPS's configuration elsewhere and let Nix cook your system up automatically is extremely cool.
it's something that's always frustrated me with how Linux software is configured -
lots of little configuration files scattered across `/etc` and sometimes other directories, which ends up being extremely hard to replicate if you ever want to switch server providers.
% id = "01J31356Q1D0SJPJB1V4MYPNX9"
- *and* your system config will end up identical to the one you had before!
isn't that awesome?
% id = "01J31356Q1BNSAF75KDE4PN2PJ"
- word of warning though: I wouldn't recommend running NixOS on a home PC.
% id = "01J31356Q1C13GSD9KSXETWW1B"
- I use :btw: on my home PC for a very simple reason.
it's just _really darn simple_ to change anything about my system.
% id = "01J31356Q1JZ13FY2XAVVKAN97"
- need to install a new package? `pacman -S`.
% id = "01J31356Q1VJ0HFQYVS1AE7CZB"
- need to edit system config?
well first of all no you don't, because other than fundamental config you change during installation, we both know Arch works pretty much works out of the box on your PC,
but even if you _do_ end up needing to change some config for a workaround, it's generally only because you need a _workaround_ - which may not be needed by the time you reinstall your system.
% id = "01J31356Q162ACZG4S6M9YNQX2"
- and reinstall your OS pretty rarely.
% id = "01J31356Q1ZXDA6QX5P978FTPS"
- most of your _important_ configuration is stored in `$HOME` y'know, and that's easy to keep between reinstalls - you have a separate `/home` partition after all.
% id = "01J31356Q1KYMMG64D3TNXH3C5"
- :btw: is also Really Darn Fast.
I can't say that about NixOS.
the package manager is excruciatingly slow to update your system config.
the initial install took _really_ long for how barebones of a system I specified in my config.
% id = "01J31356Q1CA21R7GM9MXGQ7Q4"
- let's derive us a system! as I mentioned before, everything in Nix is achieved by means of _derivations_.
% id = "01J31356Q191D3J645CT75YFEJ"
- from a programming perspective, a derivation is simply a function `options -> path`, where `options` is an attribute set specifying how the output `path` should be derived.
% id = "01J31356Q1PRWPYD0EGGY1ZK3W"
- and that's *it*.
% id = "01J31356Q1445NB18CNBE91CZP"
- suppose you'd like to download a file from the Internet.
that's what the `pkgs.fetchurl` function is for.
```nix
# This expression results in a path to the downloaded file.
pkgs.fetchurl {
url = "https://liquidex.house";
# As long as you fill in the hash, which I don't know...
# Nix will tell you what it should be though!
hash = "";
}
```
% id = "01J31356Q1HEW2HCTG27BDFJM2"
- but where does `pkgs` even come from?

View file

@ -3,11 +3,11 @@
% id = "01H9R1KJESR2F420HE67HW4AVR"
- notes and design lessons from the best programming language of all time that everyone loves (not really)
% content.link = "programming/languages/cxx/access-modifiers-as-labels"
% content.link = "programming/cxx/access-modifiers-as-labels"
redirect_from = ["programming/cxx/access-modifiers-as-labels"]
id = "01H9R1KJESGGM35KT8ANEA2B9Q"
+ :page: access modifiers as labels (`private:`, `protected:`, and `public:`)
% content.link = "programming/languages/cxx/shared-unique-ptr-deleter"
% content.link = "programming/cxx/shared-unique-ptr-deleter"
id = "01J0VN48AZYH6KJGK7PSKN0PCA"
+ :page: freeing C memory automatically using `std::unique_ptr` and `std::shared_ptr`

View file

@ -9,18 +9,18 @@
% id = "01H8YGXP0ZWG6X3PB6GWSGKAT0"
- both the fun and the good, and that which ruins my mood
% id = "programming/technologies/unreal-engine/blueprint"
content.link = "programming/technologies/unreal-engine/blueprint"
% id = "programming/unreal-engine/blueprint"
content.link = "programming/unreal-engine/blueprint"
+ :page: thoughts on Blueprint
% id = "01HP1FESY5WVJG4X80AZ4ZBX5D"
- :folder: random but cool things
% content.link = "programming/technologies/unreal-engine/generated-body"
% content.link = "programming/unreal-engine/generated-body"
id = "01HV1DGFHP6GB268MDGGDXMR12"
+ :page: how does `GENERATED_BODY()` work exactly?
% content.link = "programming/technologies/unreal-engine/fixes"
% content.link = "programming/unreal-engine/fixes"
id = "01HP1FESY5ZS6YTZXA8QTT5V1Z"
+ :page: data validation quick fixes

View file

@ -1,6 +1,6 @@
%% title = "the end is never the end is never the end is never the end is never the end is never the end is never the end is never the end is never the end"
% content.link = "about-treehouse/the-end-is-never"
% content.link = "the-end-is-never"
do_not_persist = true
id = "the-end-is-never"
+ …

View file

@ -7,6 +7,10 @@
content.link = "treehouse/changelog"
+ #### :folder: what's going on inside the house?
% id = "treehouse/emoji"
content.link = "treehouse/emoji"
+ #### :folder: emoji index
% id = "treehouse/issues"
- #### :folder: [issue tracker][def:treehouse/issues]

View file

@ -79,9 +79,36 @@ tags = [
"haku",
]
[redirects.page]
"programming/cxx" = "programming/languages/cxx"
"programming/unreal-engine" = "programming/technologies/unreal-engine"
[redirects.path]
# 2025-01-14 flattening
"about-treehouse" = "programming/about-treehouse"
"about-treehouse/emoji" = "treehouse/emoji"
"about-treehouse/the-end-is-never" = "the-end-is-never"
"music/reviews/aphex-twin/blue-calx" = "music/blue-calx"
"music/reviews/aphex-twin/syro" = "music/syro"
"music/reviews/opn/i-dont-love-me-anymore" = "music/i-dont-love-me-anymore"
"music/reviews/radiohead/a-moon-shaped-pool" = "music/a-moon-shaped-pool"
"music/reviews/radiohead/ok-computer" = "music/ok-computer"
"music/reviews/telefon-tel-aviv/map-of-what-is-effortless" = "music/map-of-what-is-effortless"
"programming/blog/aoc" = "programming/aoc"
"programming/blog/buildsome" = "programming/buildsome"
"programming/blog/cstring-starts-with" = "programming/cstring-starts-with"
"programming/blog/haku" = "programming/haku"
"programming/blog/lvalues" = "programming/lvalues"
"programming/blog/nix" = "programming/nix"
"programming/blog/or-types" = "programming/or-types"
"programming/blog/systems" = "programming/systems"
"programming/blog/tairu" = "programming/tairu"
"programming/blog/try-is-not-the-only-option" = "programming/try-is-not-the-only-option"
"programming/blog/vfs" = "programming/vfs"
"programming/languages/cxx" = "programming/cxx"
"programming/languages/javascript" = "programming/javascript"
"programming/languages/lua" = "programming/lua"
"programming/technologies/unreal-engine" = "programming/unreal-engine"
"programming/technologies/unreal-engine/blueprint" = "programming/unreal-engine/blueprint"
"programming/technologies/unreal-engine/fixes" = "programming/unreal-engine/fixes"
"programming/technologies/unreal-engine/generated-body" = "programming/unreal-engine/generated-body"
[emoji]