add a tagging system to the website

This commit is contained in:
りき萌 2025-08-24 13:18:51 +02:00
parent 701da6bc4b
commit e1b6578b2a
97 changed files with 1025 additions and 979 deletions

7
content/tag/c.dj Normal file
View file

@ -0,0 +1,7 @@
title = "#c"
include_feed = { tag = "c", title = "Posts" }
+++
Programming in C.\
Also see [#cpp][page:tags/cpp].

24
content/tag/cxx.dj Normal file
View file

@ -0,0 +1,24 @@
title = "#cxx"
include_feed = { tag = "cxx", title = "Posts" }
+++
Programming in C++.
---
A lot of people don't like C++, and I can't blame them for it.
I don't love it too.
It's just that it's currently the most pragmatic choice for any sort of multi-domain program which follows [the Philosophy][page:tag/programming].
While most C++ code I write is very C-like, I don't limit myself to C, because C++ is a lot more pleasant to program in.
Just the addition of namespaces, `enum class`, references, parsimonious use of templates, and operator overloading, is enough of an improvement over C that I generally tend to prefer C++ for solving my problems.
C++ remains the most pragmatic choice for most long-term projects while [Odin](https://odin-lang.org) and [Zig](https://ziglang.org) are still cooking.
I can rely on the language not changing under my feet, remaining stable and portable for many years to come, with a library ecosystem following a similar philosophy.
Places of unpleasantness in C++ for me include: classes and encapsulation, complicated template metaprogramming, the entire `std` namespace, lack of enum-indexed arrays, and also the Unreal Engine.
~...Seriously though, why does _nobody_ but Odin and Nim implement enum-indexed arrays?\
What is wrong with you people.~

52
content/tag/design.dj Normal file
View file

@ -0,0 +1,52 @@
title = "#design"
include_feed = { tag = "design", title = "Posts" }
+++
Design.
User interface design.\
User experience design.\
Product design.\
Graphic design.
Anything encompassing _design_, by the very definition of the word, goes into this tag.
I decided to start writing about design on this blog, because I like pondering on electronic interfaces.
They're what connects machine to human, and I find it fascinating to see how other people view that very form of art.
But the act of _design_ is a lot wider than just that, which is why you may also find more philosophical musings here.
About anything with _intent_, _thoughtfulness_ behind it.
Naturally, I practice it too.
This website, including its colour palette, layout, illustrations, iconography, is entirely designed by me.
There's also the aspect of [design in programming][page:tag/programming], which goes under its own dedicated tag `#programming` (but `#design` and `#programming` overlap sometimes).
---
As a designer, I value designs which get out of my way, and let me get the thing done.
Not by virtue of minimalism, quite the opposite, actually.
Sometimes minimalism is appropriate, other times it isn't.
In professional software, the last thing I want to see is a hamburger menu.
On a blog, the last thing I want to see is [a sidebar distracting me from the post][page:design/sidebars].
Colourful icons are ugly, but are easier to read than monochrome equivalents.
Bevels, embosses, and drop shadows play an important role in communicating which elements are interactable, and how.
Do not omit them.
Google's products are the opposite of good design.
They look and act like toys for 5-year olds, rather than products for professionals.
Anyone who doesn't respect `@media (prefers-reduced-motion: reduce)` does not deserve my respect.
Including Google.
Dark mode toggled through JavaScript and user settings is bad user experience.
There's a CSS media query for querying dark mode, and it exists for a reason.
_Use it._\
If your light mode looks so bad that system light mode users want to switch away from it, rethink your life choices.
Yadda yadda.
I could go on forever, and you could disagree on any of my points.

16
content/tag/games.dj Normal file
View file

@ -0,0 +1,16 @@
title = "#games"
include_feed = { tag = "games", title = "Posts" }
+++
*Gaming.*
---
I don't really write much about video games, mostly because the games I _really_ get into, I usually get so immersed I can't get out and do anything else.
Such as writing a post.
But if there's a 2nd hobby after programming that I'm really into, it is video games.
Maybe someday I will begin writing up more of my thoughts.
There sure are lots of games I love, and would like to give a tribute to.

8
content/tag/graphics.dj Normal file
View file

@ -0,0 +1,8 @@
title = "#graphics"
include_feed = { tag = "graphics", title = "Posts" }
+++
Graphics programming, and graphics programming _only_.
For graphic design, go to [#design][page:tag/design].

26
content/tag/javascript.dj Normal file
View file

@ -0,0 +1,26 @@
title = "#javascript"
include_feed = { tag = "javascript", title = "Posts" }
+++
Programming in JavaScript.
---
Despite my attraction to lower level programming, I sometimes find myself programming in JavaScript.
It's a decent workhorse language that powers most of the modern web.
Its position as The Language of the Web makes it incredibly useful to know as a modern-day programmer, because sooner or later you'll probably find yourself in a spot where you'll say "gee, I wish I had a way to cobble together a quick and dirty tool with a UI."
It's the one language I keep coming back to, because it's the one language I cannot replace with something that follows [the Philosophy][page:tag/programming].
(No, WebAssembly is not an option.
Have you ever actually tried using it?)
I don't love its design.
I think [Lua][page:tag/lua] is a much more elegant programming language.
But I like it for what it can do for me out of the box.
---
This website purposefully avoids using JavaScript where possible though, because it would be a waste of your computer's resources.
Plain HTML is perfectly fine for most of its functionality.

21
content/tag/lua.dj Normal file
View file

@ -0,0 +1,21 @@
title = "#lua"
include_feed = { tag = "lua", title = "Posts" }
+++
Programming in Lua (_riki_th edition.)
---
I love Lua.
It's a wonderful little scripting language.
I don't generally use Lua in my own projects nowadays, because it doesn't really follow [the Philosophy][page:tag/programming], but it's a wonderful little tool to have in your belt.
Knowing Lua gives you access to tools like [LÖVE](https://love2d.org), which is a nice little audiovisual framework that is executed in an incredibly charming way.
And also the plethora of software which uses Lua for scripting, such as [Neovim](https://neovim.io).
Lua is also [a poster child of brilliant language design][page:programming/lua].
Despite a lot of its archaisms, the language design is beautifully elegant, with each piece fitting neatly into a cohesive whole.
Not to mention its implementation being famously fast for a bytecode interpreter, with [a lot of pieces](https://lua.org/doc/jucs05.pdf) that I borrowed into my own interpreted languages, too.

10
content/tag/meow.dj Normal file
View file

@ -0,0 +1,10 @@
title = "#meow"
include_feed = { tag = "meow", title = "Pages" }
+++
Meowowowow
---
It's called "meow" because it's about *me*-yow!~

28
content/tag/music.dj Normal file
View file

@ -0,0 +1,28 @@
title = "#music"
include_feed = { tag = "music", title = "Posts" }
+++
Whatever---yeah music, music.
[Without the barriers.](https://www.youtube.com/watch?v=l5ufPTvBmHU){.secret}
---
I've been addicted to music for as long as I remember.
And music has always been with me, always been there for me, no matter where I went, or how deep in shambles I was.
Always there, always comforting, as I was\
[Always breaking, always healing.](https://www.youtube.com/watch?v=k0lrgMplH58){.secret}
I owe a great lot to the artists whose music has kept me company all these years.
It is through these blog posts, (as well as direct support through buying there albums), I hope I can give them back a little something precious: a piece of my imagination, through writing.
Something in return for all the emotions they managed to spark within me.\
Something in return for the years of resonance with my heart and soul.
{style="text-align: right;"}
for Her\
my Guardian Angel\
Music

21
content/tag/plt.dj Normal file
View file

@ -0,0 +1,21 @@
title = "#plt"
include_feed = { tag = "plt", title = "Posts" }
+++
Programming language theory and design.
---
One of the more interesting fields of computer science, I believe.
I've been fascinated with programming languages ever since I was a little riki.
There's always been something magical about writing special words into a computer, and the computer being able to _interpret_ them.
So with my tendency for digging deep into any topic I'm interested in, it was only natural that at some point, I started designing and writing those programming languages myself.
An important thing of note is that I'm not an academic.
I'm a practicioner and a humanist.
Therefore, most of my programming language knowledge lives on the more human, design side of things, rather than the theoretical, mathematical side.
I know a lot of the basics behind the theory of it all, but I'm by no means on the cutting edge of language theory and computer science.

View file

@ -0,0 +1,74 @@
title = "#programming"
include_feed = { tag = "programming", title = "Pages" }
+++
Honestly my favourite thing to do.
I've been programming for over 10 years now, and there's no sign of it stopping.
Most of the posts on my website are about programming because of this.
I actually spend so much time programming, I don't have much time for other hobbies!
~It does get kind of sad when you think about it though. When folks around you talk about all the movies or games you didn't see because you were looking at monospaced letters in a text editor...~
---
If I started to describe my whole programming philosophy here, this page would be longer than your favourite roll of toilet paper.
So instead, here are some opinions you may find yourself disagreeing with, given without any further context.
Just so that you can see what sort of programmer I am.
- I write very direct, procedural code.
My programming style is about functions, data structures those functions manipulate, function capabilities expressed through arguments, and encapsulation via modules composed of those things.
- The easier your data is to inspect, the less code you have to write to accomplish a task.
Encapsulation meddles with that directly and prevents direct inspection.
Therefore, encapsulation should be limited mostly to cases where your system interacts with the "outside world," whatever that might mean in your domain of choice.
- Object-oriented programming was [originally meant for simulating distributed systems](https://www.youtube.com/watch?v=wo84LFzx5nI), and it should have stayed in that domain.
The number of invalid state bugs object-oriented programming has inflicted on me in my time as a programmer is miserable.
- I think in groups of things, rather than single elements.
It simplifies reasoning about your program and reduces the number of invalid states (including errors related to memory mismanagement.)
- I value reliability in software very highly.
I like it when I can rely on my software.
For it not to break under its own weight, or pull the rug from under my feet.
This refers both to reliability in terms of the end user side (crashes, bugs, needless UI changes), as well as the programmer side (churn, breaking API changes).
- I prefer code custom-built to a project's needs.
Home-grown game engines are great, and are how you push the industry forward.
And [a little copying is better than a little dependency](https://www.youtube.com/watch?v=PAAkCSZUG1c&t=568s).
Shame on the programmers who choose Unity or Unreal for their game and make my computer sound like a rocket engine.
- I like my software to be fast.
There's too little time in life to be spent [waiting for your tools to load](https://www.unrealengine.com/).
Likewise, I like it when my software _builds_ fast.
There's too little time in life to be spent [waiting for your game code to build and reload](https://www.unrealengine.com/).
Fast software makes it easy to stay in the flow as a creative person.
I think this is something the industry doesn't value enough.
When a piece of software causes you to wait and switch context, it should not be considered a good piece of software.
I rarely have to think about performance though, because software adhering to the rest of my philosophy is generally fast enough not to cause a problem.
It's likely these values will change or grow over time.
I build wisdom slowly, as all of us do.
---
I don't boast about my programming projects very hard online, because I don't seek clout.
I build them for myself and my friends to enjoy, and that is more than enough to satisfy me.
But in case you're curious, here's what I'm currently working on:
- *@@@@*, an untitled, unannounced video game.
- [*rakugaki*][def:rkgk/repo], an online multiplayer painting app with programmable brushes.
- this website!
Any other project you run across from me is probably dead.
Please let it rest in peace and do not resurrect it.
You software necromancer. >w<

19
content/tag/shower.dj Normal file
View file

@ -0,0 +1,19 @@
title = "#shower"
include_feed = { tag = "shower", title = "Posts" }
+++
Shower thoughts.
You didn't think I meant anything weird with that name, did you?
---
Under this tag you will find assorted philosophical thoughts, musings, and everything in between.
Reflections on myself, reality around me, growing up.
Rants, too.
By that, perhaps you could call this the most existential section of the website.
Or perhaps not.
Who knows?

8
content/tag/treehouse.dj Normal file
View file

@ -0,0 +1,8 @@
title = "#treehouse"
include_feed = { tag = "treehouse", title = "Posts" }
+++
`treehouse` is the piece of software that powers riki.house.
This tag aggregates posts related to this website and the tech behind it.