From 782bf344f1d3d160dc417c955e88f3e5ec4d1d8f Mon Sep 17 00:00:00 2001 From: liquidev Date: Thu, 25 Jul 2024 23:13:24 +0200 Subject: [PATCH] update changelog - revision 10 --- content/treehouse/changelog.tree | 76 ++++++++++++++++++++++++++++++++ content/treehouse/issues.tree | 20 ++++----- 2 files changed, 86 insertions(+), 10 deletions(-) diff --git a/content/treehouse/changelog.tree b/content/treehouse/changelog.tree index 34add9e..a4c7087 100644 --- a/content/treehouse/changelog.tree +++ b/content/treehouse/changelog.tree @@ -1,5 +1,81 @@ %% title = "what's going on inside the house? (a changelog)" +% id = "01J3NX4F6Z0JWN0E4B3DJMTAFH" +- **revision 10:** I am speed + + % id = "01J3NX4F6Z0WB2RN4GHTVFNRGB" + + the treehouse now caches most static assets, so that they don't have to be redownloaded. + especially that very large font, which I should probably optimize now that I think about it! + + % id = "01J3NX4F6ZMB691JYM61RHP4ZN" + - there are some minor exceptions to this, which include: + + % id = "01J3NX4F6Z59655NYTS3QTA9EQ" + + pages themselves. we cannot cache those at all. well, maybe in release mode, for like 10 seconds, which defeats the point. + + % id = "01J3NX4F6Z5J3PYZPBESR30CD8" + - we can only cache those assets which are guaranteed not to change given their URL. + + caching on the treehouse is performed by means of a `?cache` query parameter which contains a truncated BLAKE3 sum of the cached file's contents. + that way we can tell the browser to redownload the asset by changing out the hash. + + this is impossible to do for pages, because they may change at any point in time. + + % id = "01J3NX4F6ZBQVY66EZB5TY8R7Q" + - I tend to update the treehouse very often - including post-deploy, if I fuck something up - so if I enable caching for e.g. an hour, and people visit the broken version, they're then stuck with a broken version for an hour. + seriously, timed caching is not a good solution for incremental website updates. + + % id = "01J3NX4F6ZXB360N1XXGN58964" + - except for `/sandbox` maybe, because that tends to be fetched in short bursts... I'll think about it. + + % id = "01J3NX4F6ZJE0JT8XY49DH52RX" + - linked branches. it's hard and not worth it for the few extra kilobytes saved - for snappiness it would be much better to prefetch branch content when the user hovers over a branch. + + % id = "01J3NX4F6ZVA8PCQNMGMW2DDFB" + - not sure what to do about mobile devices, because they don't have a hover state. + + % id = "01J3NX4F6ZASD2FCKKNKWZCJWB" + - more images now have proper `width="" height=""` attributes, which should help eliminate layout shift when loading pages. + + % id = "01J3NX4F6Z5MZQ57ZTWHZZJZ7G" + + the treehouse is now powered by Djot, not Markdown! took me an evening or two to rewrite everything to the new markup, but I think it'll be worth it. + I can already see some pretty big clarity wins. + + % id = "01J3NX4F6Z0KWMDDMBCYGB836M" + - my favorite feature so far is that you can add custom attributes to anything. + like this, for example: + + ``````djot + {:program=haku} + ```haku + (- 100 35) + ``` + `````` + + % id = "01J3NX4F6ZGK01W6060BXTWJMJ" + - and have you noticed that there's a code block inside this code block? you can't do that in Markdown! + + `````````djot + ``````djot + {:program=haku} + ```haku + (- 100 35) + ``` + `````` + ````````` + + % id = "01J3NX4F6ZS93FTJ71YK2CASN7" + - literate programming blocks are now correctly rendered with JavaScript disabled, thanks to me rewriting the HTML renderer in the Djot transition. + + % id = "01J3NX4F6ZDFZJX77DCZZJ8KKK" + + I also took the liberty to add some highlighting to missing emojis. + meaning they now stick out like a sore thumb :sore_thumb: to nag me about adding them in (or pulling them in from other branches. hello :verified: :TODO: :DONE: how have you been) + + % id = "01J3NX4F6ZY6M6RAA2DVP7TAJ4" + - yeah yeah we all know how [ad blindness][] works, this is totally not gonna push me to do this isn't it + + [ad blindness]: https://en.wikipedia.org/wiki/Banner_blindness + % id = "01J09K0B6JGYBJVVZ07QFXB0FM" - **revision 9:** summer cleaning diff --git a/content/treehouse/issues.tree b/content/treehouse/issues.tree index 4d3d0d9..aecb07f 100644 --- a/content/treehouse/issues.tree +++ b/content/treehouse/issues.tree @@ -76,7 +76,7 @@ reparsing JS and HTML every single time cannot be fast % id = "01J093FGZFGBDJ5QPHSZW9NVB5" - + :TODO: :l_content: [page:programming/projects] needs the rest of my projects + + :TODO: :l_content: [page:programming/projects][] needs the rest of my projects % id = "01J0VN48BR5XZSHC0D6Q3DRG8P" - I haven't had the motivation (or a reason) to talk about my projects there yet so yeah. @@ -91,7 +91,7 @@ - arguably the current `_tree.hbs` template is not that large, but it's not exactly small either % id = "01J093FGZFMA8RWXA3QTMFX4A0" - + :TODO: :l_content: [page:programming/blog/lvalues] C compiler that desugars lvalue operations + + :TODO: :l_content: [page:programming/blog/lvalues][] C compiler that desugars lvalue operations % id = "01J093FGZFDYYGHEQJ63AQ7HKX" - it would be nice if we had a way of letting the user explore the idea in more detail @@ -131,7 +131,7 @@ + :TODO: :l_feat: implement [Webmentions](https://indieweb.org/Webmention) % id = "01J093FGZFJZ191RSZFVSND6QE" - + :TODO: :l_content: [page:programming/blog/tairu] has a [leftover TODO][branch:01HPD4XQPW8HE7681P7H686X4N] + + :TODO: :l_content: [page:programming/blog/tairu][] has a [leftover TODO][branch:01HPD4XQPW8HE7681P7H686X4N] % id = "01J093FGZF5PEM6EWCDEKSX8S0" + :TODO: :l_feat: :l_sandbox: do not load iframes that are out of viewport @@ -152,10 +152,10 @@ - add a `https://dev.liquidex.house` that will let me push changes for friends to see without breaking shit on the main branch % id = "01J093FGZF4400EAJYJGT2FFJJ" - + :TODO: :l_sandbox: sandbox: Delete key does not work + + :TODO: :l_sandbox: sandbox: `Delete`{=html} key does not work % id = "01J094P8H34NSZDWC067ENAX3T" - - I managed to get the Backspace key to work fine in Firefox, but Delete still needs some work. + - I managed to get the `Backspace`{=html} key to work fine in Firefox, but `Delete`{=html} still needs some work. % id = "01J093FGZF2K8Y2S8JY61GBWHR" + :TODO: :l_feat: :l_a11y: keyboard navigation @@ -164,20 +164,20 @@ - it should be possible to navigate the tree using your keyboard: % id = "01J094P8H3HJCADRWQNGBWMR36" - - - choose branch + - ``{=html} ``{=html} - choose branch % id = "01J094P8H3B44DBXCY0N6AFG9D" - - - collapse + - ``{=html} - collapse % id = "01J094P8H30JBKYJPT01M0C68T" - - - expand + - ``{=html} - expand % id = "01J094P8H3MTV093F4Z0AMSJQ9" - - these shortcuts overwrite browser functionality so it should probably only be enabled if the user starts pushing Tab to focus elements. + - these shortcuts overwrite browser functionality so it should probably only be enabled if the user starts pushing `Tab`{=html} to focus elements. % id = "01J094P8H368794MNW65W074A0" - this will probably also require us to add proper `tabindex`es to elements, which isn't currently done; - the Tab navigation experience is a hodgepodge, focusing on various elements that don't exactly make much sense. + the `Tab`{=html} navigation experience is a hodgepodge, focusing on various elements that don't exactly make much sense. % id = "01J093FGZFJB7BB1YNJX32MXCG" + :TODO: :l_feat: allow the user to "zoom into" a branch